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

时间:2010-11-06 04:09:29

标签: 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);

我得到的例外是:

System.FormatException: The specified string is not in the form required for an
e-mail address.

但是,根据wiki,短划线是本地部分的有效字符。

是否有人知道如何使用System.Net.Mail类向电子邮件地址中带破折号的人发送电子邮件?

2 个答案:

答案 0 :(得分:2)

你确定吗?它适用于我(我使用我的实际邮件服务器剪切和粘贴您的代码替换您的虚拟邮件服务器。)我只是收到传递通知,告知joe-blow@me.com的邮件无法送达。

由于您有异常消息,我想这是真的。这可能是编码问题吗?

答案 1 :(得分:0)

此异常可能是由app.config文件的from元素的smtp属性中的电子邮件地址无效引起的。虽然这会导致任何尝试发送电子邮件以引发异常,无论to电子邮件地址是否包含破折号。不过,值得检查app.config的mailSettings元素中指定的内容。