Outlook:如何从收件人字段中获取电子邮件?

我正在尝试将电子邮件地址输入到撰写邮件窗口的“ 收件人”字段中。

我尝试获取收件人的地址属性,根据VS,应该给我电子邮件。

我收到一个看起来像这样的字符串:

"/c=US/a=att/p=Microsoft/o=Finance/ou=Purchasing/s=Furthur/g=Joe" 

如何在收件人字段中获取电子邮件地址?

我的代码到目前为止:

 List  emails = new List(); if (thisMailItem.Recipients.Count > 0) { foreach (Recipient rec in thisMailItem.Recipients) { emails.Add(rec.Address); } } return emails; 

你能试试吗?

 emails.Add(rec.AddressEntry.Address); 

参考链接

编辑:

我没有合适的测试环境,所以我只是猜测这一切,但是怎么样

 string email1Address = rec.AddressEntry.GetContact().Email1Address; 

.Email2Adress.Email3Address

还有,

 rec.AddressEntry.GetExchangeUser().Address 

你可能想尝试一下。

试试这个

 private string GetSMTPAddressForRecipients(Recipient recip) { const string PR_SMTP_ADDRESS = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"; PropertyAccessor pa = recip.PropertyAccessor; string smtpAddress = pa.GetProperty(PR_SMTP_ADDRESS).ToString(); return smtpAddress; } 

这可以在MSDN上找到

我使用相同的方式在我的应用程序中获取电子邮件地址及其工作。

AddressEntry还有一个SMTPAddress属性,用于公开用户的主要smtp地址。

我不知道这是否有帮助或有多准确

 it is, a sample private string GetSmtp(Outlook.MailItem item) { try { if (item == null || item.Recipients == null || item.Recipients[1] == null) return ""; var outlook = new Outlook.Application(); var session = outlook.GetNamespace("MAPI"); session.Logon("", "", false, false); var entryId = item.Recipients[1].EntryID; string address = session.GetAddressEntryFromID(entryId).GetExchangeUser().PrimarySmtpAddress; if (string.IsNullOrEmpty(address)) { var rec = item.Recipients[1]; var contact = rec.AddressEntry.GetExchangeUser(); if (contact != null) address = contact.PrimarySmtpAddress; } if (string.IsNullOrEmpty(address)) { var rec = item.Recipients[1]; var contact = rec.AddressEntry.GetContact(); if (contact != null) address = contact.Email1Address; } return address; } finally { } }