给定电子邮件地址:“Jim”[电子邮件受保护]>
如果我尝试将其传递给 MailAddress 我会得到异常:
指定的字符串不符合电子邮件地址所需的格式。
如何将此地址解析为显示名称 (Jim) 和电子邮件地址 ([电子邮件受保护] /cdn-cgi/l/email-protection) in C#?
编辑:我正在寻找 C# 代码来解析它。
EDIT2:我发现 MailAddress 引发了异常,因为我在电子邮件地址字符串的开头有一个空格。
如果您希望手动解析电子邮件地址,则需要阅读 RFC2822 (https://www.rfc-editor.org/rfc/rfc822.html#section-3.4 https://www.rfc-editor.org/rfc/rfc822.html#section-3.4)。 3.4节讨论了地址格式。
但正确解析电子邮件地址并不容易MailAddress
应该能够应对大部分场景。
根据 MSDN 文档MailAddress
:
http://msdn.microsoft.com/en-us/library/591bk9e8.aspx http://msdn.microsoft.com/en-us/library/591bk9e8.aspx
它应该能够解析带有显示名称的地址。他们给"Tom Smith <[email protected] /cdn-cgi/l/email-protection>"
举个例子。也许引号是问题所在?如果是这样,只需去掉引号并使用 MailAddress 来解析其余部分。
string emailAddress = "\"Jim\" <[email protected] /cdn-cgi/l/email-protection>";
MailAddress address = new MailAddress(emailAddress.Replace("\"", ""));
如果可以避免的话,手动解析 RFC2822 就不值得了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)