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

时间:2015-08-13 09:11:12

标签: email outlook outlook-addin mail-sender multiple-accounts

我正在以撰写模式检索此mailItem但是当我检查mailItem.SenderEmailAddress时,它是NULL,但所有其他属性都有值(例如: - body,body format,to,....) 。我是如何从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 我必须处理多个邮箱。所以,我无法使用Namespace获取当前用户的地址。它总是返回主邮箱用户的地址。

请参阅以下截图 enter image description here

提前致谢。

Kushan Randima

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

使用Namespace类的CurrentUser属性将当前登录的用户作为Recipient对象。 Recipient类的Address属性返回表示收件人的电子邮件地址的字符串。