Outlook的电子邮件类型为EX时如何获取发件人的电子邮件?

时间:2019-02-21 05:33:56

标签: c# outlook com

我试图通过C#代码获取Outlook邮箱的发件人电子邮件地址。我尝试了this link,但在senderEmail = objAddressentry.GetExchangeUser().PrimarySmtpAddress行中收到“对象引用未设置为对象的实例”。我的代码如下:

Outlook.Application oApp = new Outlook.Application();
Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
Outlook.MailItem olMail = new Outlook.MailItem();

if (olMail.SenderEmailType == "EX")
{

   var objReply = olMail.Reply();
   var objRecipient = objReply.Recipients[1]; 

   var strEntryId = objRecipient.EntryID;

   var objAddressentry = oNS.GetAddressEntryFromID(strEntryId);
   string senderEmail = objAddressentry.GetExchangeUser().PrimarySmtpAddress;
}

我将不胜感激。

如果有帮助,我遇到了this link,但是我的AddressEntryUserType却是olExchangeDistributionListAddressEntry,这就是为什么该控件没有进入If分支的原因。

1 个答案:

答案 0 :(得分:0)

如前所述,我的代码是正确的。当objAddressentry.GetExchangeUser()的{​​{1}}是AddressEntryUserType类型时,它将为Sender引发“对象引用未设置为对象的实例”。修改后的代码如下:

olExchangeDistributionListAddressEntry