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>";