留言回复系统需要发送邮件给管理员现在已经有jmail实现了这个功能可有一个问题
我希望收件人邮箱里显示的发件人地址是留言人填写的地址,而不是我用来发邮件的地址。改jmail.From不行,改了后就发送失败了了jmail.ReplyTo是回复地址,邮箱里显示的发件人依然没变。
我记得曾经收到轮子的宣传材料都是没有发件人地址的,所以smtp里应该是有个漏洞可以自己改发件人地址。

解决方案 »

  1.   

    jmail不能更.from地址,可以用其它如cdo发邮件
      

  2.   

    jmail也可以啊FromName 才是显示的邮箱,
       jmail.Message jmessage = new jmail.MessageClass();            jmessage.Charset = "UTF-8";
                jmessage.Priority = 3;
                jmessage.From = mailFrom; 这个是发信的
                jmessage.FromName = "";//这个是显示的
              
      

  3.   

    看错了。应该是设置From。但是邮件的服务器的登录和密码应该另外放、
     jmail.Message jmessage = new jmail.MessageClass();            jmessage.Charset = "UTF-8";
                jmessage.Priority = 3;
                jmessage.From = mailFrom;//发送邮件的
                jmessage.MailServerUserName = smtpUid;//登录邮件服务器的邮件地址
                jmessage.MailServerPassWord = smtpPwd;
      

  4.   

    改from就不能发送了,说明除了用户名或密码外还会验证from的地址
    FromName 是显示的发件人名字,可有些邮箱还是会显示发件人地址这个改不了。
      

  5.   


        public bool SendMail(string sendto,string subject,string body)
        {        CDO.Message objMsg = new CDO.Message();
            CDO.Configuration conf = new CDO.Configuration();
            conf.Fields["http://schemas.microsoft.com/cdo/configuration/sendusing"].Value = 2;
            conf.Fields["http://schemas.microsoft.com/cdo/configuration/smtpserver"].Value = "你的smtp服务器";
            
            conf.Fields.Update();
            objMsg.Configuration = conf;                try
            {            objMsg.From = "这里随便写个发信地址";
                objMsg.To = sendto;
                objMsg.Subject = subject;
                objMsg.TextBody = body;
                objMsg.TextBodyPart.Charset = "utf-8";
                objMsg.Send();
            }
            catch 
            {
                return (false);        }
            return (true);
        }另外,必须引用  using CDO;
    vs中添加引用cdo