c# - 发送邮件时不显示 "Display Name"

标签 c# .net iis-7 smtp

我从我的站点(.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/

相关文章:

javascript - 将变量从 Javascript 传递到 C# 以用于 SQL SELECT,然后将结果传递回 Javascript

c# - 无法将类型 [具体] 隐式转换为 [接口(interface)]

c# - 用于深层嵌套对象的自定义 Json 序列化程序

c# - .NET 4.0 中新的 'dynamic' 变量类型是否解决了 CLR 中的单/多方法调度问题?

IIS URL 重写模块 : Redirect Based On QueryString

c# - 异步函数陷入死锁?

c# - Restful WCF 服务身份验证

c# - 我可以用这种方式为所有派生的单例定义一个抽象类吗?

asp.net - 程序集使我的 asp.net 4.0 崩溃

python - 尽管 __debug__ 为真,但条件 __debug__ 语句未执行