Система. Net. Mail's MailAddress на самом деле ближе к MailboxAddress классу MimeKit.
Аналогично, System. Net. MailAddressCollection MailE эквивалентно InternetAddressList * MimeKit *. 1006 *.
В отличие от System. Net .Mail, однако MimeKit также поддерживает тип адреса group
, определенный в rfc822 (позже обновленный rfc2822 и rfc5322), который выглядит следующим образом:
group-name: mailbox1@domain.com, mailbox2@domain.com;
В сочетании с обычными адресами mailbox
стиля в заголовке To:
, например, это может выглядеть следующим образом:
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
Вернуться к вопросу в вашем заголовке: Is 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);
}
Чтобы выполнить sh то же самое с помощью MimeKit, вы можете сделать что-то вроде этого:
void AddDefaultRecipients (InternetAddressList list, string recipients)
{
var parsed = InternetAddressList.Parse (recipients);
list.AddRange (parsed);
}
Имеет ли это смысл сейчас?