我需要向电子邮件地址中包含国际字符的收件人发送电子邮件。电子邮件示例如下:
GaÙl@asterixthe.com
我做了很多搜索,但我发现的信息是身体而不是接收者。我是否需要以某种方式对此进行mime编码,如果是,那该怎么办?
我得到的代码如下:
MailMessage mailMessage =
new MailMessage(email.SenderEmailAddress, email.RecipientEmailAddress, "Why hello there!", emailMessage)
{
IsBodyHtml = true,
BodyEncoding = new System.Text.UTF8Encoding()
};
SmtpClient smtpClient = new SmtpClient("localhost")
{
Port = 25,
};
smtpClient.Send(mailMessage);
谢谢,
西蒙
编辑:这是例外
System.FormatException: The specified string is not in the form required for an
e-mail address.
at System.Net.Mime.MailBnfHelper.ReadMailAddress(String data, Int32& offset,
String& displayName)
at System.Net.Mime.MailBnfHelper.ReadMailAddress(String data, Int32& offset)
at System.Net.Mail.MailAddressCollection.ParseValue(String addresses)
at System.Net.Mail.MailAddressCollection.Add(String addresses)
at System.Net.Mail.Message..ctor(String from, String to)
at System.Net.Mail.MailMessage..ctor(String from, String to)
at System.Net.Mail.MailMessage..ctor(String from, String to, String subject,
String body)
答案 0 :(得分:0)
确定,
在.Net框架中阅读MailMessage类的文档,我发现该类的一个构造函数接收一个MailAddress对象。
根据MSDN(http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress.aspx),DisplayName属性可以包含非ASCII字符,我认为如果他们明确指定是因为Name不能拥有它们。
你有没有尝试过另一个帖子的建议,那个说你可以使用“punycode”?