Проблема с получением отправителя электронной почты в Outlook Interop ⇐ C#
-
Гость
Проблема с получением отправителя электронной почты в Outlook Interop
Мы разрабатываем плагин для Outlook 365, который извлекает различные части электронного письма для создания файла. Когда письмо из папки «Входящие» отправляется с помощью обмена, мы не можем определить отправителя. Мы скопировали метод со страницы руководства Microsoft, но он всегда возвращает значение NULL.
Это метод:
частная строка GetSenderSMTPAddress(Microsoft.Office.Interop.Outlook.MailItem mail) { строка PR_SMTP_ADDRESS = @"http://schemas.microsoft.com/mapi/proptag/0x39FE001E"; если (почта == ноль) { выбросить новое ArgumentNullException(); } если (mail.SenderEmailType == "EX") { Microsoft.Office.Interop.Outlook.AddressEntry отправитель = почта.Отправитель; если (отправитель != ноль) { //Теперь у нас есть AddressEntry, представляющий отправителя если (sender.AddressEntryUserType == Microsoft.Office.Interop.Outlook.OlAddressEntryUserType. олExchangeUserAddressEntry || отправитель.AddressEntryUserType == Microsoft.Office.Interop.Outlook.OlAddressEntryUserType. олExchangeRemoteUserAddressEntry) { //Используем объект ExchangeUser PrimarySMTPAddress Microsoft.Office.Interop.Outlook.ExchangeUser exchUser = отправитель.GetExchangeUser(); если (exchUser != ноль) { вернуть exchUser.PrimarySmtpAddress; } еще { вернуть ноль; } } еще { вернуть отправителя.PropertyAccessor.GetProperty( PR_SMTP_ADDRESS) как строка; } } еще { вернуть ноль; } } еще { вернуть почту.SenderEmailAddress; } } Что мы можем сделать, чтобы узнать отправителя? Кажется, эта страница руководства устарела
Мы разрабатываем плагин для Outlook 365, который извлекает различные части электронного письма для создания файла. Когда письмо из папки «Входящие» отправляется с помощью обмена, мы не можем определить отправителя. Мы скопировали метод со страницы руководства Microsoft, но он всегда возвращает значение NULL.
Это метод:
частная строка GetSenderSMTPAddress(Microsoft.Office.Interop.Outlook.MailItem mail) { строка PR_SMTP_ADDRESS = @"http://schemas.microsoft.com/mapi/proptag/0x39FE001E"; если (почта == ноль) { выбросить новое ArgumentNullException(); } если (mail.SenderEmailType == "EX") { Microsoft.Office.Interop.Outlook.AddressEntry отправитель = почта.Отправитель; если (отправитель != ноль) { //Теперь у нас есть AddressEntry, представляющий отправителя если (sender.AddressEntryUserType == Microsoft.Office.Interop.Outlook.OlAddressEntryUserType. олExchangeUserAddressEntry || отправитель.AddressEntryUserType == Microsoft.Office.Interop.Outlook.OlAddressEntryUserType. олExchangeRemoteUserAddressEntry) { //Используем объект ExchangeUser PrimarySMTPAddress Microsoft.Office.Interop.Outlook.ExchangeUser exchUser = отправитель.GetExchangeUser(); если (exchUser != ноль) { вернуть exchUser.PrimarySmtpAddress; } еще { вернуть ноль; } } еще { вернуть отправителя.PropertyAccessor.GetProperty( PR_SMTP_ADDRESS) как строка; } } еще { вернуть ноль; } } еще { вернуть почту.SenderEmailAddress; } } Что мы можем сделать, чтобы узнать отправителя? Кажется, эта страница руководства устарела
Мобильная версия