我有以下代码行来将012地址添加到MailMessage
实例。 (X的部分字符串中代表字母字符的占位符,以防止识别客户的。)意外的“无效的电子邮件地址格式”
message.To.Add("Xxxxxxxxx Xxxxxx Xxxxxxxxxx, Xxx. <[email protected]>");
而且我得到以下错误:
The specified string is not in the form required for an e-mail address
message
是System.Net.Mail.MailMessage
类型。我的理解是这种格式被接受。事实上,代码已经与其他地址一起工作。名称中的逗号或句号是否有可能违反格式?
编辑
所以这里是我迄今为止在正确的格式来构建的电子邮件地址。
// Construct a compound email address string
public static string BuildEmailAddress(string name, string emailAddress)
{
if (String.IsNullOrWhiteSpace(name))
return emailAddress;
name = Regex.Replace(name, @"[()<>\[\]:;@\\,.""]",
m => string.Format(@"\{0}", m.Value));
return String.Format("\"{0}\" <{1}>", name, emailAddress);
}
这方面的内容仍不清楚。例如,如果雅虎遇到逗号,它只会将名称包装在双引号中,而不会打扰反斜杠。如果任何人都可以说什么时候需要引号和什么时候需要反斜杠,我欢迎任何建议。
请列出发生的特殊字符。任何非ASCII符号,如äöüß? – skarmats
逐个删除逗号和句点,看看它是否再次有效? –
您的.NET版本也会很有用,因为可能通过版本 – skarmats