当我尝试将电子邮件发送到包含重音字符 (é) 的地址时, SmtpClient.Send()方法会引发此异常:
System.Net.Mail.SmtpException:客户端或服务器仅配置为具有 ASCII 本地部分的电子邮件地址:léo.xxx@example.com。
在 System.Net.Mail.MailAddress.GetAddress(Boolean allowUnicode)
在 System.Net.Mail.SmtpClient.ValidateUnicodeRequirement(MailMessage...)
在 System.Net.Mail.SmtpClient.Send(MailMessage 消息)
消息的制定使我觉得可能有一个设置可以激活以使这项工作正常进行,尽管我还没有找到有关此主题的任何内容。
我尝试了几个 SMTP 服务器,包括 Gmail。以下是重现的相关位:
代码
var msg = new MailMessage();
msg.Subject = "Test";
msg.From = new MailAddress("xxx@gmail.com");
msg.To.Add(new MailAddress("léo.yyy@gmail.com"));
new SmtpClient().Send(msg);
应用程序配置
<system.net>
<mailSettings>
<smtp from="xxx@gmail.com">
<network host="smtp.gmail.com" port="587" userName="xxx@gmail.com" password="password" enableSsl="true" />
</smtp>
</mailSettings>
</system.net>