And*_*huk 10 c# vsto outlook-2007 outlook-addin
我有一个VSTO Outlook 2007加载项.当新邮件进入收件箱时,我正在尝试获取发件人电子邮件地址.
为此,我使用以下代码:
void inboxItems_ItemAdd(object Item)
{
Outlook.MailItem mailItem = Item as Outlook.MailItem;
if (mailItem != null)
string emailAdress = mailItem.SenderEmailAddress;
}
Run Code Online (Sandbox Code Playgroud)
问题是当电子邮件来自同一个域时,emailAdress包含LDAP地址
/ O =第一个组织/ OU =第一个行政组/ CN = RECIPIENTS/CN = ADMINISTRATOR
虽然我想获得像这样的SMTP地址
administrator@orgname.com
我的问题是如何从内部域获取电子邮件的SMTP发件人地址?
PS
在Outlook 2010中,可以使用Sender属性解决此问题.但它在2007年不受支持.
item.Sender.GetExchangeUser().PrimarySmtpAddress
Run Code Online (Sandbox Code Playgroud)
GTG*_*GTG 15
在Outlook 2007中,您可以这样做:
private string GetSmtpAddress(Outlook.MailItem oItem)
{
Outlook.Recipient recip;
Outlook.ExchangeUser exUser;
string sAddress;
if (oItem.SenderEmailType.ToLower() == "ex")
{
recip = Globals.ThisAddIn.Application.GetNamespace("MAPI").CreateRecipient(oItem.SenderEmailAddress);
exUser = recip.AddressEntry.GetExchangeUser();
sAddress = exUser.PrimarySmtpAddress;
}
else
{
sAddress = oItem.SenderEmailAddress.Replace("'", "");
}
return sAddress;
}
Run Code Online (Sandbox Code Playgroud)