MailKit:解析显示名称中包含电子邮件地址的电子邮件字符串时出现 ParseException
MailKit: ParseException when parsing an email string with email-address in displayname
我目前正在开发在 DotNet6 上运行并使用 MailKit 3.1.0 的微服务。
我有以下代码片段:
var from = "John Doe via noreply@company.com <noreply@company.com>";
var mailBoxAddress = MailboxAddress.Parse(from);
第二行代码导致以下异常:
MimeKit.ParseException:偏移量 0
处的地址规范令牌无效
我做了一些测试,发现字符串的以下变体有效:
var fromAlternative1 = "John Doe via noreplycompany.com <noreply@company.com>"; // missing @
var fromAlternative2 = "JohnDoevianoreply@company.com<noreply@company.com>"; // no empty space
这让我想到了一个问题,它是否可能存在一个能够解析 from 字符串的配置,这可能是一个错误或者这种行为是设计使然?
作为解决方法,我自己解析显示名称和电子邮件地址。
如果名称包含 @
符号或 .
.
,则需要正确引用名称
这些是电子邮件规范要求引用的特殊字符。
换句话说,正确的字符串应该是:
"John Doe via noreply@company.com" <noreply@company.com>
或者,在 C# 中:
var from = "\"John Doe via noreply@company.com\" <noreply@company.com>";
我目前正在开发在 DotNet6 上运行并使用 MailKit 3.1.0 的微服务。 我有以下代码片段:
var from = "John Doe via noreply@company.com <noreply@company.com>";
var mailBoxAddress = MailboxAddress.Parse(from);
第二行代码导致以下异常: MimeKit.ParseException:偏移量 0
处的地址规范令牌无效我做了一些测试,发现字符串的以下变体有效:
var fromAlternative1 = "John Doe via noreplycompany.com <noreply@company.com>"; // missing @
var fromAlternative2 = "JohnDoevianoreply@company.com<noreply@company.com>"; // no empty space
这让我想到了一个问题,它是否可能存在一个能够解析 from 字符串的配置,这可能是一个错误或者这种行为是设计使然?
作为解决方法,我自己解析显示名称和电子邮件地址。
如果名称包含 @
符号或 .
.
这些是电子邮件规范要求引用的特殊字符。
换句话说,正确的字符串应该是:
"John Doe via noreply@company.com" <noreply@company.com>
或者,在 C# 中:
var from = "\"John Doe via noreply@company.com\" <noreply@company.com>";