2017-05-25 55 views
0

我使用Outlook :: _ MailItem对象的get_SenderEmailAddress()来获取发件人的电子邮件地址。但是,如果用户是活动目录用户,那么recipientitem.address将如下所示:/o = organizationg/ou = exchange administrative group/cn = recipients/cn = xxxxxxxxxx如果用户是活动目录用户,如何获取发件人的电子邮件地址?

是否有任何其他方式获得发件人的电子邮件地址?

+1

的[观VBA的MailItem属性SenderEmailAddress无法正常返回地址]可能的复制(https://stackoverflow.com/questions/25746770/outlook-vba-mailitem-property-senderemailaddress-not-returning-address-correctly ) – niton

回答

0

这看起来像一个非常有效的电子邮件地址类型“EX”(而不是“SMTP”)。

如果您想要SMTP地址,请使用MailItem.Sender.GetExchangeUser().PrimarySmtpAddress。准备好处理空值和例外。 但首先检查MailItems.SenderEmailType属性 - 如果它是“SMTP”,则仍然可以使用SenderEmailAddress

0

我正在使用它来获取发件人邮件地址。

private string GetSenderSMTPAddress(Outlook.MailItem mail) 
    { 
     try 
     { 
      string PR_SMTP_ADDRESS = 
        @"http://schemas.microsoft.com/mapi/proptag/0x39FE001E"; if (mail == null) 
      { 
       throw new ArgumentNullException(); 
      } 
      if (mail.SenderEmailType == "EX") 
      { 
       Outlook.AddressEntry sender = 
        mail.Sender; 
       if (sender != null) 
       { 
        //Now we have an AddressEntry representing the Sender 
        if (sender.AddressEntryUserType == 
         Outlook.OlAddressEntryUserType. 
         olExchangeUserAddressEntry 
         || sender.AddressEntryUserType == 
         Outlook.OlAddressEntryUserType. 
         olExchangeRemoteUserAddressEntry) 
        { 
         //Use the ExchangeUser object PrimarySMTPAddress 
         Outlook.ExchangeUser exchUser = 
          sender.GetExchangeUser(); 
         if (exchUser != null) 
         { 
          return exchUser.PrimarySmtpAddress; 
         } 
         else 
         { 
          return null; 
         } 
        } 
        else 
        { 
         return sender.PropertyAccessor.GetProperty(
          PR_SMTP_ADDRESS) as string; 
        } 
       } 
       else 
       { 
        return null; 
       } 
      } 
      else 
      { 
       return mail.SenderEmailAddress; 
      } 
     } 
     catch (Exception ex) 
     { 
      return null; 
     } 
    } 
相关问题