gpt4 book ai didi

c# - 如何将格式化的电子邮件地址解析为显示名称和电子邮件地址?

转载 作者:可可西里 更新时间:2023-11-01 07:53:03 25 4
gpt4 key购买 nike

给定电子邮件地址:“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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com