如何发送电子邮件到其中有破折号的地址?

是我还是在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.

不过,据维基说,短划线在本地是一个有效的字符。

有没有人知道使用System.Net.Mail类将电子邮件发送给电子邮件地址中带短划线的人的方法?


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

既然你有一个异常信息,我想这是真的。 这可能是一个编码问题吗?


此异常可能是由于app.config文件的smtp元素的from属性中存在无效的电子邮件地址造成的。 虽然这会导致任何试图将电子邮件发送到抛出一个异常,不管是否to电子邮件地址包含一个破折号或没有。 不过,值得检查app.config的mailSettings元素中指定的内容。

链接地址: http://www.djcxy.com/p/92931.html

上一篇: How do I send an email to an address with a dash in it?

下一篇: Grails: Validation of string containing a delimited list of email addresses