如何向包含破折号的地址发送电子邮件?

tho*_*kia 6 c# smtp system.net.mail

是我还是System.Net.Mail中的MailAddress类中有错误?

这段代码总是会引发一个问题:

MailMessage mail = new MailMessage();
mail.From = new MailAddress("me@me.com");     
mail.To.Add("joe-blow@me.com");

mail.Subject = "Test email"
mail.IsBodyHtml = true;
mail.Body = "<b>Does not work</b>";

//Connect to server and send message.               
SmtpClient smtp = new SmtpClient();
smtp.Host = "mailserver.me.com";
smtp.Send(mail);
Run Code Online (Sandbox Code Playgroud)

我得到的例外是:

System.FormatException: The specified string is not in the form required for an
e-mail address.
Run Code Online (Sandbox Code Playgroud)

但是,根据wiki,破折号是本地部分的有效字符.

有没有人知道使用System.Net.Mail类向电子邮件地址中带破折号的人发送电子邮件的方法?

jas*_*son 2

你确定吗?它对我有用(我剪切并粘贴您的代码,用我的实际邮件服务器替换您的虚拟邮件服务器。)我只是收到消息joe-blow@me.com无法投递的投递通知。

既然你有一条异常消息,我想它是真的。可能是编码问题吗?

  • 感谢您的评论...这让我看得更深入了...似乎我从数据库中读取的每个电子邮件地址的末尾都有 \r ,从而引发了错误。 (3认同)