我有以下代码行将To地址添加到MailMessage
实例。 (字符串中的X代表字母字符的占位符,以防止识别客户。)
message.To.Add("Xxxxxxxxx Xxxxxx Xxxxxxxxxx, Xxx. <xxxxxx@xxxxxxxxx-xx.com>");
我收到以下错误:
指定的字符串不是电子邮件地址所需的格式
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);
}
这一点的要素仍不清楚。例如,如果Yahoo遇到逗号,它只是用双引号包装名称而不用反斜杠。如果有人能说什么时候需要报价以及何时需要反斜杠,我会欢迎任何建议。
答案 0 :(得分:2)
我认为不允许使用逗号,因为它在技术上是RFC 822/2822中的列表分隔符。至少,这就是我读它的方式。