给出电子邮件地址:"Jim"
如果我尝试将此传递给MailAddress,我会得到异常:
指定的字符串不是电子邮件地址所需的格式.
如何在C#中将此地址解析为显示名称(Jim)和电子邮件地址(jim@example.com)?
编辑:我正在寻找解析它的C#代码.
EDIT2:我发现MailAddress抛出了异常,因为我在电子邮件地址字符串的开头有一个空格.
如果您希望手动解析电子邮件地址,则需要阅读RFC2822(https://tools.ietf.org/html/rfc822.html#section-3.4).第3.4节讨论了地址格式.
但正确解析电子邮件地址并不容易,MailAddress
应该能够处理大多数情况.
根据MSDN文档MailAddress
:
http://msdn.microsoft.com/en-us/library/591bk9e8.aspx
它应该能够解析具有显示名称的地址.他们举"Tom Smith
了一个例子.也许报价是问题?如果是这样,只需删除引号并使用MailAddress解析其余部分.
string emailAddress = "\"Jim\""; MailAddress address = new MailAddress(emailAddress.Replace("\"", ""));
如果可以避免,手动解析RFC2822是不值得的.