作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
给定电子邮件地址:“Jim”
如果我尝试将其传递给 MailAddress,我会得到异常:
The specified string is not in the form required for an e-mail address.
如何在 C# 中将此地址解析为显示名称 (Jim) 和电子邮件地址 (jim@example.com)?
编辑:我正在寻找 C# 代码来解析它。
EDIT2:我发现异常是由 MailAddress 抛出的,因为我在电子邮件地址字符串的开头有一个空格。
最佳答案
如果您希望手动解析电子邮件地址,则需要阅读 RFC2822 ( https://www.rfc-editor.org/rfc/rfc822.html#section-3.4 )。 3.4节讲地址格式。
但是正确解析电子邮件地址并不容易,而且MailAddress
应该能够处理大多数情况。
根据 MailAddress
的 MSDN 文档:
http://msdn.microsoft.com/en-us/library/591bk9e8.aspx
它应该能够解析带有显示名称的地址。他们给"Tom Smith <tsmith@contoso.com>"
举个例子。也许引号是问题所在?如果是这样,只需去掉引号并使用 MailAddress 解析其余部分。
string emailAddress = "\"Jim\" <jim@example.com>";
MailAddress address = new MailAddress(emailAddress.Replace("\"", ""));
如果可以避免,手动解析 RFC2822 是不值得的。
关于c# - 如何将格式化的电子邮件地址解析为显示名称和电子邮件地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/162681/
我是一名优秀的程序员,十分优秀!