如何发送电子邮件到其中有破折号的地址?
是我还是在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
元素中指定的内容。
上一篇: 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