В Outlook получатели могут быть добавлены в список рассылки несколькими способами, либо в виде простой комбинации имя / адрес, либо в качестве внешнего контакта. Когда ContactItem
добавляется в список рассылки, последующие изменения адреса электронной почты контакта не отражаются в списке автоматически - вам нужно открыть список и вручную нажать «обновить участников». Я хотел бы сделать это программно. Однако объект DistListItem
не предоставляет метод update()
, поэтому требуется другой способ.
Для этого я пытаюсь вернуться к исходному ContactItem
от члена DistListItem
, который является объектом Recipient
. Я думал, что смогу использовать что-то вроде DistListItem.GetMember(i).AddressEntry.GetContact()
, но это только исключение. Есть идеи, что я могу делать не так? Вот часть моего кода (это часть дополнения VSTO):
Outlook.Explorer currentExplorer = Application.ActiveExplorer();
Outlook.MAPIFolder currentFolder = currentExplorer.CurrentFolder;
foreach (Object item in currentFolder.Items.OfType<Outlook.DistListItem>())
{
Outlook.DistListItem DistList = (Outlook.DistListItem)item;
for (int i = 1; i <= DistList.MemberCount; i++)
{
Outlook.Recipient recipient = DistList.GetMember(i);
// this will throw an exception, saying the object can't be found:
Outlook.ContactItem contact = recipient.AddressEntry.GetContact();
}
}