我从我的站点(.NET Framework 2.0、IIS 7)发送邮件为
MailAddress from = new MailAddress("from@email.com", "Name Name");
MailAddress to = new MailAddress("to@email.com", "");
MailMessage mm = new MailMessage(from, to);
mm.Subject = subject;
mm.Body = body;
using ( mm )
{
if (attach != null)
mm.Attachments.Add(attach);
mm.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient(mailServer);
if (!string.IsNullOrEmpty(mailPort))
smtp.Port = int.Parse(mailPort);
smtp.Credentials = new System.Net.NetworkCredential(username, pass);
smtp.Send(mm);
}
但是在收到信件时没有显示名称(“姓名名称”),只有电子邮件。
您是否知道可能导致此问题的原因?
我敢肯定,电子邮件客户端不会忽略显示名称!客户端是 Outlook。
申请转让对象时mm
到服务器,属性 From
是{"Name Name" <from@email.com>}
.为什么服务器删除名称?
最佳答案
我也遇到过这个问题,但发现 MailAddress 也有第三个编码参数。所以不要使用:
MailAddress from = new MailAddress("from@email.com", "Name Name");
试试这些家伙:
MailAddress from = new MailAddress("from@email.com", "Name Name", Encoding.ASCII);
MailAddress from = new MailAddress("from@email.com", "Name Name", Encoding.UTF8);
MailAddress from = new MailAddress("from@email.com", "Name Name", Encoding.Unicode);
此列表不是限制性的,您还可以使用其他编码选项。我使用 gmail 并在启用 Less Secure Apps 的访问权限后, 它在使用 SmtpClient 后适用于所有这些。
关于c# - 发送邮件时不显示 "Display Name",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6301418/