2015-01-23 5 views
0

Я пытаюсь найти получателя на адрес электронной почты, при чтении писем из Outlook я пробовал эти вещи, но получаю все получатели, включая cc, но мне нужно только адрес электронной почты в MailItemПолучить адрес электронной почты получателя (по адресу) из Outlook Plugin

foreach (Microsoft.Office.Interop.Outlook.MailItem mail in myInbox.Items) 
{ 
     string smtpAddress = string.Empty; 
     Subject = mail.Subject; 
     Description = mail.Body; 
     FromEmail = mail.SenderEmailAddress; 
     Microsoft.Office.Interop.Outlook.Recipients recips = mail.Recipients; 
     string mailids = string.Empty; 
     foreach (Microsoft.Office.Interop.Outlook.Recipient recip in recips) 
     { 
      Microsoft.Office.Interop.Outlook.PropertyAccessor pa = recip.PropertyAccessor; 
      smtpAddress = pa.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x39FE001E").ToString(); 
      ToEmail = smtpAddress; 
      break; 
     } 
     MailedDateTime = mail.CreationTime; 
     Direction = 1; 
     CompanyID = CompanyID; 
     UserID = UserID; 
     ID = mail.EntryID; 
} 

и я также попытался

ToEmail = mail.To; 

в этом я получаю имя иногда при этом получатель

ответ

0

Вы можете использовать Type свойство класса Recipient для обнаружения только получателей. Это будет одна из следующих констант OlMailRecipientType: olBCC, olCC, olOriginator или olTo. Похоже, вам нужно проверить свойство Type.

Следует помнить, что в настоящее время Microsoft не рекомендует и не поддерживает автоматизацию приложений Microsoft Office от любого необработанного, неинтерактивного клиентского приложения или компонента (включая службы ASP, ASP.NET, DCOM и NT), поскольку Office может проявлять нестабильное поведение и/или тупик, когда Office работает в этой среде.

Если вы создаете решение, которое выполняется в контексте на стороне сервера, вы должны попытаться использовать компоненты, которые были безопасны для автоматического выполнения. Или вы должны попытаться найти альтернативы, которые позволяют хотя бы часть кода запускать клиентскую сторону. Если вы используете приложение Office из серверного решения, для успешного выполнения приложения не будет достаточного количества необходимых возможностей. Кроме того, вы рискуете стабильностью своего общего решения. Вы можете узнать больше об этом в статье Considerations for server-side Automation of Office.

+0

Да, olTo работал для меня, если (recip.Type == (int) Microsoft.Office.Interop.Outlook.OlMailRecipientType.olTo) {}. эта проверка дает mailaddress, спасибо. – user1557102

Смежные вопросы