MimeKit InternetAddressList.Parse 与 System.Net.Mail.MailAddressCollection.Add 兼容吗?
Is MimeKit InternetAddressList.Parse compatible with System.Net.Mail.MailAddressCollection.Add?
想请教 MimeKit 的开发者,这些 class 是如何关联的?
本文介绍了 .NET class 如何解析。
https://docs.microsoft.com/en-us/dotnet/api/system.net.mail.mailaddress?view=netcore-3.1
为 MimeKit 找到的唯一东西是:
http://www.mimekit.net/docs/html/T_MimeKit_InternetAddress.htm
A mailbox address, as specified by rfc822
谁支持的案例更多?很高兴看到一些比较 table。
System.Net.Mail的MailAddress实际上更接近MimeKit的MailboxAddress class.
同样,System.Net.Mail 的 MailAddressCollection 等同于 MimeKit 的 InternetAddressList.
然而,与System.Net.Mail不同,MimeKit 还支持由 rfc822(后来由 rfc2822 和 rfc5322 更新)定义的 group
类型的地址,如下所示:
group-name: mailbox1@domain.com, mailbox2@domain.com;
在 To:
header 中与正常的 mailbox
样式地址组合,例如,它可能如下所示:
To: not-in-the-group@domain.com, group-name: in-the-group1@domain.com, in-the-group2@domain.com;, not-in-the-group2@domain.com
回到标题中的问题:MimeKit InternetAddressList.Parse 与 System.Net.Mail.MailAddressCollection.Add 兼容吗?
它们很相似,但是 InternetAddressList.Parse(string)
不能 drop-in 替代 MailAddressCollection.Add(string)
,因为它们做的事情不同。
MailAddressCollection.Add(string)
不仅解析字符串,还将解析的邮箱地址(作为 MailAddress
项)附加到 collection.
InternetAddressList.Parse(string)
解析字符串,将邮箱(and/or 组)地址作为 InternetAddressList
object.
返回
如果解释不清楚,让我们举一些例子:
var to = new MailAddressCollection ();
to.Add ("user1@domain.com, user2@domain.com");
使用 MimeKit,您将执行以下操作:
var to = InternetAddressList.Parse ("user1@domain.com, user2@domain.com");
现在让我们看另一个例子:
void AddDefaultRecipients (MailAddressCollection collection, string recipients)
{
collection.Add (recipients);
}
要使用 MimeKit 完成同样的事情,您可以这样做:
void AddDefaultRecipients (InternetAddressList list, string recipients)
{
var parsed = InternetAddressList.Parse (recipients);
list.AddRange (parsed);
}
现在明白了吗?
想请教 MimeKit 的开发者,这些 class 是如何关联的?
本文介绍了 .NET class 如何解析。
https://docs.microsoft.com/en-us/dotnet/api/system.net.mail.mailaddress?view=netcore-3.1
为 MimeKit 找到的唯一东西是:
http://www.mimekit.net/docs/html/T_MimeKit_InternetAddress.htm
A mailbox address, as specified by rfc822
谁支持的案例更多?很高兴看到一些比较 table。
System.Net.Mail的MailAddress实际上更接近MimeKit的MailboxAddress class.
同样,System.Net.Mail 的 MailAddressCollection 等同于 MimeKit 的 InternetAddressList.
然而,与System.Net.Mail不同,MimeKit 还支持由 rfc822(后来由 rfc2822 和 rfc5322 更新)定义的 group
类型的地址,如下所示:
group-name: mailbox1@domain.com, mailbox2@domain.com;
在 To:
header 中与正常的 mailbox
样式地址组合,例如,它可能如下所示:
To: not-in-the-group@domain.com, group-name: in-the-group1@domain.com, in-the-group2@domain.com;, not-in-the-group2@domain.com
回到标题中的问题:MimeKit InternetAddressList.Parse 与 System.Net.Mail.MailAddressCollection.Add 兼容吗?
它们很相似,但是 InternetAddressList.Parse(string)
不能 drop-in 替代 MailAddressCollection.Add(string)
,因为它们做的事情不同。
MailAddressCollection.Add(string)
不仅解析字符串,还将解析的邮箱地址(作为 MailAddress
项)附加到 collection.
InternetAddressList.Parse(string)
解析字符串,将邮箱(and/or 组)地址作为 InternetAddressList
object.
如果解释不清楚,让我们举一些例子:
var to = new MailAddressCollection ();
to.Add ("user1@domain.com, user2@domain.com");
使用 MimeKit,您将执行以下操作:
var to = InternetAddressList.Parse ("user1@domain.com, user2@domain.com");
现在让我们看另一个例子:
void AddDefaultRecipients (MailAddressCollection collection, string recipients)
{
collection.Add (recipients);
}
要使用 MimeKit 完成同样的事情,您可以这样做:
void AddDefaultRecipients (InternetAddressList list, string recipients)
{
var parsed = InternetAddressList.Parse (recipients);
list.AddRange (parsed);
}
现在明白了吗?