留言回复系统需要发送邮件给管理员现在已经有jmail实现了这个功能可有一个问题
我希望收件人邮箱里显示的发件人地址是留言人填写的地址,而不是我用来发邮件的地址。改jmail.From不行,改了后就发送失败了了jmail.ReplyTo是回复地址,邮箱里显示的发件人依然没变。
我记得曾经收到轮子的宣传材料都是没有发件人地址的,所以smtp里应该是有个漏洞可以自己改发件人地址。
我希望收件人邮箱里显示的发件人地址是留言人填写的地址,而不是我用来发邮件的地址。改jmail.From不行,改了后就发送失败了了jmail.ReplyTo是回复地址,邮箱里显示的发件人依然没变。
我记得曾经收到轮子的宣传材料都是没有发件人地址的,所以smtp里应该是有个漏洞可以自己改发件人地址。
jmail.Message jmessage = new jmail.MessageClass(); jmessage.Charset = "UTF-8";
jmessage.Priority = 3;
jmessage.From = mailFrom; 这个是发信的
jmessage.FromName = "";//这个是显示的
jmail.Message jmessage = new jmail.MessageClass(); jmessage.Charset = "UTF-8";
jmessage.Priority = 3;
jmessage.From = mailFrom;//发送邮件的
jmessage.MailServerUserName = smtpUid;//登录邮件服务器的邮件地址
jmessage.MailServerPassWord = smtpPwd;
FromName 是显示的发件人名字,可有些邮箱还是会显示发件人地址这个改不了。
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