在撰写模式下从邮件项中获取 SenderEmailAddress

Get SenderEmailAddress from mail item in compose mode

我正在检索,这个 mailItem 处于撰写模式,但是当我检查 mailItem.SenderEmailAddress 时,它是 NULL,但所有其他属性在那里都有值(例如:- 正文,正文格式,到,. ...)。我如何从 MAIL-ITEM IT-SELF 中获取发件人电子邮件?

我正在使用 Visual Studio 2013 和 Addin express v.7.7.4087

这是代码:-

        Outlook.Inspector currentInspector = null;
        Outlook.MailItem mailItem = null;
        Outlook.Folder outboxFolder = null;
        Outlook.Recipients recipients = null;

        const string PR_SMTP_ADDRESS = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E";

        currentInspector = Globals.ObjOutlook.ActiveInspector();

        if (currentInspector != null)
            {

            if (currentInspector.CurrentItem is Outlook.MailItem)
            {
                mailItem = currentInspector.CurrentItem as Outlook.MailItem;
                mailItem.Save();
                string sender = mailItem.SenderEmailAddress; //This is null 
            }
        }

P.S 我必须处理多个邮箱。所以,我无法使用命名空间获取当前用户地址。它总是return我的主要邮箱用户地址。

请看下面的截图

提前致谢。

苦山兰迪玛

使用收件人的 CurrentUser property of the Namespace class to get the currently logged-on user as a Recipient object. The Address 属性 class returns 表示收件人电子邮件地址的字符串。

您是否使用多个 Exchange 帐户发送?使用 MailItem.SendUsingAccount,然后阅读 Account.SmtpAddress。如果是"",使用Account.CurrentUser.AddressEntry.GetExchangeUser.PrimarySmtpAddress.

如果MailItem.SendUsingAccount == null,您可以使用默认帐户。