我正在以撰写模式检索此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获取当前用户的地址。它总是返回主邮箱用户的地址。
提前致谢。
Kushan Randima
答案 0 :(得分:3)
您是使用多个Exchange帐户发送的吗?使用MailItem.SendUsingAccount,然后读取Account.SmtpAddress。如果是"",请使用Account.CurrentUser.AddressEntry.GetExchangeUser.PrimarySmtpAddress。
如果MailItem.SendUsingAccount == null,您可以采用默认帐户。
答案 1 :(得分:2)
使用Namespace类的CurrentUser属性将当前登录的用户作为Recipient对象。 Recipient类的Address属性返回表示收件人的电子邮件地址的字符串。