Unicode 显示名称不适用于使用 SmtpClient 和 MailMessage 发送的 C# 电子邮件

我使用 .NET SmtpClient 和 MailMessage 发送电子邮件,尽管当我在 MS Office Outlook(桌面版)中接收电子邮件时,显示名称似乎无法处理带重音的 Unicode 字符。 正文、主题和一切似乎都很好,除了显示名称。有趣的是,如果我向 Gmail 或 Outlook 发送电子邮件,显示名称也很好。 我知道它可以是电子邮件服务器,但如果我将来自其他提供商的电子邮件发送到我的 Outlook,它就可以工作。

是否有任何配置或解决方案可以解决此问题?我的相关代码:

MailMessage m_Msg = new MailMessage();
SmtpClient smtpClient = new SmtpClient();
    
m_Msg.From = new mailaddress(FromAddress,FromName,System.Text.Encoding.UTF8 /*Tried with System.Text.Encoding.Unicode,does not work*/);
m_Msg.Subject = Subject;
m_Msg.Body = Body;
m_Msg.IsBodyHtml = true;
m_Msg.Priority = MailPriority.Normal;
smtpClient.Host = SMTPServer;
smtpClient.Port = SMTPPort;
smtpClient.EnableSsl = SMTPEnableSSL;
smtpClient.Credentials = new NetworkCredential(SMTPusername,SMTPPassword);
smtpClient.Timeout = 20000;
smtpClient.SendCompleted += new SendCompletedEventHandler(EMailSending_OnCompleted);

//m_Msg.BodyEncoding = System.Text.Encoding.UTF8; // Tried,not working
//m_Msg.HeadersEncoding = System.Text.Encoding.UTF8; // Tried,not working
//m_Msg.SubjectEncoding = System.Text.Encoding.UTF8; // Tried,not working

smtpClient.DeliveryFormat = SmtpDeliveryFormat.International;
smtpClient.SendAsync(m_Msg,m_Msg);
michaelmars 回答:Unicode 显示名称不适用于使用 SmtpClient 和 MailMessage 发送的 C# 电子邮件

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1073055.html

大家都在问