gpt4 book ai didi

c# - Outlook 2007 vsto 加载项。获取电子邮件发件人地址

转载 作者:可可西里 更新时间:2023-11-01 09:02:17 25 4
gpt4 key购买 nike

我有一个 VSTO Outlook 2007 加载项。当新电子邮件到达收件箱时,我正在尝试获取发件人电子邮件地址。
为此,我使用以下代码:

void inboxItems_ItemAdd(object Item)
{
Outlook.MailItem mailItem = Item as Outlook.MailItem;

if (mailItem != null)
string emailAdress = mailItem.SenderEmailAddress;
}

问题是当电子邮件来自同一域时,emailAdress 包含 LDAP 地址,如

/O=FIRST ORGANIZATION/OU=FIRST ADMINISTRATIVE GROUP/CN=RECIPIENTS/CN=ADMINISTRATOR

虽然我想获取 SMTP 地址,例如

administrator@orgname.com

我的问题是如何从内部域获取电子邮件的 SMTP 发件人地址?

P. S.
在 Outlook 2010 中,可以使用 Sender 属性解决此问题。但 2007 年不支持。

item.Sender.GetExchangeUser().PrimarySmtpAddress

最佳答案

在 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;
}

关于c# - Outlook 2007 vsto 加载项。获取电子邮件发件人地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8655104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com