Моя цель - добавить / удалить получателей к существующему MailItem mailItem
.
Я добавляю новый адрес электронной почты ("some.one@corp.com"):
mailItem.To += "some.one@corp.com";
Затем я разрешаю получателей, чтобы они выглядели лучше для пользователя (например, отображение статуса Skype для внутренних контактов).
mailItem.Recipients.ResolveAll();
Это работает для половины из них. Для некоторых, если я посмотрю на mailItem.To
, строка электронного письма будет изменена на имя контакта («Some One»), а контакт отсутствует в mailItem.Recipients
. НО они отображаются как разрешенные (например, они имеют статус Skype или имеют (контакт) для внешних).
Так что это как-то наполовину решено для половины получателей. Я не смог найти никакой логики, некоторые внутренние контакты работают, другие нет, то же самое для внешних получателей ...
Google мало чем поможет. На данный момент я деактивирую ResolveAll, чтобы мой инструмент продолжал работать, но указатели приветствуются!
Для контекста:
Чтобы добавить / удалить получателей,
Я обрабатываю электронные письма, добавленные непосредственно к mailItem.To
, проверяя с помощью простого mailItem.To.Contains(newEmailAdress)
, чтобы избежать дублирования, и удаляя с помощью mailItem.Replace(newEmailAdress, "")
. Работает отлично.
Затем я хочу обработать контакты, которые уже были разрешены или введены непосредственно как Получатели. Я перебираю mailItem.Recipients
, конвертирую адрес электронной почты, используя PropertyAcessor
, и тогда речь идет только о сравнении с newMailAdress
. Вот как я заметил, некоторые из них были разрешены наполовину.