我现在遇到这样一个问题,
我们的系统有这么一个需求,用户提交一份订单后,要以用户的名义给我们的Dealer发一封邮件,
同时我们的Dealer也有向用户发一封邮件,这些都是系统自动完成的,都是在客户点击“提交”后发生的。
我以前用的是匿名发邮件,也就是自己用IIS建了一个SMTP服务器,可以匿名发邮件,
我可以用任何人的身份发邮件。
但是最近有个问题,就是我们的客户有很多人用hotmail的邮箱,不知道为什么我们在给Hotmail匿名发邮件
的时候,hotmail收不到邮件,
我估计应该是我们匿名发邮件的原因,hotmail直接给过滤掉了,所以我现在要改成“非匿名”发邮件,也就是
必须输入用户名和密码,但是客户的邮箱我们是不知道,所以我们是不可能真正的以用户的身份发邮件的。
所以我想是否我可以用自己的用户和密码,用自己的邮件服务器发邮件,但是收到的邮件,显示的时候,显示的是
不是我的地址,而是用户的地址。不知道我描述清楚没有。大概的意思就是我用System.net.Mail发邮件,用一个用户名和密码发邮件,
但是我想隐藏掉真正的From(发信人)的信息,而是显示另外的email地址,
我能实现Displayname是另外的地址,但是旁边还是有我真正的发信人的地址,我有什么办法能隐藏掉他。
或者遇到这样的问题,有没有其他的解决方法。请高人指导。
我们的系统有这么一个需求,用户提交一份订单后,要以用户的名义给我们的Dealer发一封邮件,
同时我们的Dealer也有向用户发一封邮件,这些都是系统自动完成的,都是在客户点击“提交”后发生的。
我以前用的是匿名发邮件,也就是自己用IIS建了一个SMTP服务器,可以匿名发邮件,
我可以用任何人的身份发邮件。
但是最近有个问题,就是我们的客户有很多人用hotmail的邮箱,不知道为什么我们在给Hotmail匿名发邮件
的时候,hotmail收不到邮件,
我估计应该是我们匿名发邮件的原因,hotmail直接给过滤掉了,所以我现在要改成“非匿名”发邮件,也就是
必须输入用户名和密码,但是客户的邮箱我们是不知道,所以我们是不可能真正的以用户的身份发邮件的。
所以我想是否我可以用自己的用户和密码,用自己的邮件服务器发邮件,但是收到的邮件,显示的时候,显示的是
不是我的地址,而是用户的地址。不知道我描述清楚没有。大概的意思就是我用System.net.Mail发邮件,用一个用户名和密码发邮件,
但是我想隐藏掉真正的From(发信人)的信息,而是显示另外的email地址,
我能实现Displayname是另外的地址,但是旁边还是有我真正的发信人的地址,我有什么办法能隐藏掉他。
或者遇到这样的问题,有没有其他的解决方法。请高人指导。
获取或设置此电子邮件的发信人地址。
发件人地址未经过验证或未绑定到当前登录的用户。MailMessage.Sender 属性也一样
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("[email protected]", "cwy_speed");
client.DeliveryMethod = SmtpDeliveryMethod.Network;MailAddress addressFrom = new MailAddress("[email protected]", "张三");
MailAddress addressTo = new MailAddress(strto, "李四");
System.Net.Mail.MailMessage message = new MailMessage(addressFrom, addressTo);
message.Sender = new MailAddress("[email protected]");
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;client.Send(message);(以上代码是可以正确执行的,并且是可以发送出去的。)
但是收到的邮件上面的发信人地址是这么写的:[email protected]; 代表; 张三[[email protected]]
我不想让客户看到[email protected],只想让他看到[email protected].或者张三,就是不能让他看到[email protected]
我说过了,From或Sender属性是可以随便设置的,可以是假的
你干吗还用
message.Sender = new MailAddress("[email protected]");
应该是
message.Sender = new MailAddress("[email protected]");
才对
From是可以设置,但是Sender必须和你的stmpserver是一个邮箱的,必须是真实的发信人。
不可以,
不信,你事实,除非你用匿名发邮件的服务器。
所以我要用明文发邮件,就是必须要用户名和密码严重后的,
这种情况下sender是不能随便写的,
From是可以随便写的,
但是当收到的邮件,发信人却是:From代表Sender发的邮件。
sender是不能随便写的。
这句去掉
现在我想的是你把Sender改为From。
按你说法,邮件是发不出去的。
你能行吗?应该是网络原因。
参见http://help.163.com/07/0119/05/3566UNG8007525KA.html你可以用hotmail.com的邮箱.
public bool Send(string title, string body, string toEmail)
{
bool result;
try
{
MailMessage mailMessage = new MailMessage();
mailMessage.To.Add(toEmail);
mailMessage.Subject = title;
mailMessage.Body = body;
mailMessage.IsBodyHtml = true;
mailMessage.From = new MailAddress("×××××@yahoo.com.cn");
SmtpClient smtpClient = new SmtpClient();
smtpClient.EnableSsl = false;
smtpClient.Host = "smtp.mail.yahoo.com";
smtpClient.Port = 25;
smtpClient.Credentials = new NetworkCredential("帐户", "密码");
smtpClient.Send(mailMessage);
result = true;
}
catch(Exception ex)
{
result = false;
HttpContext.Current.Response.Write("<script language='javascript'>alert('" + ex.Message.ToString() + "!');</script>");
}
return result;
}