【问题标题】:Is MimeKit InternetAddressList.Parse compatible with System.Net.Mail.MailAddressCollection.Add?MimeKit InternetAddressList.Parse 是否与 System.Net.Mail.MailAddressCollection.Add 兼容?
【发布时间】:2020-05-01 07:45:23
【问题描述】:

想问问 MimeKit 的开发者,这些类是如何关联的?

本文描述了 .NET 类的解析方式。

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

一个邮箱地址,由 rfc822 指定

谁支持更多案例?很高兴看到一些比较表。

【问题讨论】:

    标签: c# .net mimekit


    【解决方案1】:

    System.Net.Mail 的 MailAddress 实际上更接近 MimeKit 的 MailboxAddress 类。

    同样,System.Net.Mail 的 MailAddressCollection 等价于 MimeKit 的 InternetAddressList

    然而,与 System.Net.Mail 不同,MimeKit 还支持由 rfc822 定义的group 类型的地址(后来由 rfc2822 和 rfc5322 更新),如下所示:

    group-name: mailbox1@domain.com, mailbox2@domain.com;
    

    结合To: 标头中的普通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) 不是 MailAddressCollection.Add(string) 的直接替代品,因为它们做不同的事情。

    MailAddressCollection.Add(string) 不仅解析字符串,还将解析的邮箱地址(作为MailAddress 项)附加到集合中。

    InternetAddressList.Parse(string) 解析字符串,将邮箱(和/或组)地址作为InternetAddressList 对象返回。

    如果解释不清楚,让我们举一些例子:

    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);
    }
    

    现在有意义吗?

    【讨论】:

      猜你喜欢
      • 2013-09-18
      • 1970-01-01
      • 2017-06-07
      • 2011-05-23
      • 2011-10-22
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多