从收件人对象获取电子邮件地址
Getting email address from a Recipient object
我正在开发一个 VSTO 插件,它需要在发送新电子邮件时读取所有电子邮件地址。下面是我现在正在使用的代码,但在少数情况下它不起作用。
if (addr.Type == "EX")
{
if (addr.AddressEntryUserType == OlAddressEntryUserType.olExchangeUserAddressEntry
|| addr.AddressEntryUserType == OlAddressEntryUserType.olExchangeRemoteUserAddressEntry)
{
exch = addr.GetExchangeUser();
smtpAddress = exch != null ? exch.PrimarySmtpAddress : null;
}
else if (addr.AddressEntryUserType == OlAddressEntryUserType.olOutlookContactAddressEntry)
{
cont = addr.GetContact();
//returns the actual contact but it has 3 email properties (Email1Address, Email2Address, Email3Address).
//How to identify which email has the user selected
}
}
else if (addr.Type == "SMTP")
{
smtpAddress = addr.Address;
}
如果 AddressEntryUserType 是 olExchangeUserAddressEntry 或 olExchangeRemoteUserAddressEntry,那么代码工作正常。但如果是本地 Outlook 联系人 (olOutlookContactAddressEntry),我不确定如何检索电子邮件地址。 GetContact 方法为我提供了实际联系方式,但由于它有 3 封电子邮件,我不知道如何找到用户在撰写电子邮件时选择的地址。
我已经尝试将基于 Exchange 的电子邮件地址转换为 SMTP,如本论坛所讨论的那样。但它正在产生巨大的性能影响。将一个地址转换为 SMTP 大约需要 300 毫秒。有没有其他有效的方法来识别收件人对象的电子邮件地址?
所选索引嵌入在 OAB 条目 ID 中 - 检查前 20 个字节是否 0x00,0x00,0x00,0x00,0xFE,0x42,0xAA,0x0A,0x18,0xC7,0x1A,0x10,0xE8,0x85,0x0B,0x65,0x1C,0x24,0x00,0x00
字节 25 是类型(0x5 是 DL,0x4 是联系方式)。字节 29 是索引(仅用于联系人):0 = 电子邮件 1,1 = 电子邮件 2,2 = 电子邮件 3,3 = 商务传真,4 = 家庭传真,5 = 其他传真。
我正在开发一个 VSTO 插件,它需要在发送新电子邮件时读取所有电子邮件地址。下面是我现在正在使用的代码,但在少数情况下它不起作用。
if (addr.Type == "EX")
{
if (addr.AddressEntryUserType == OlAddressEntryUserType.olExchangeUserAddressEntry
|| addr.AddressEntryUserType == OlAddressEntryUserType.olExchangeRemoteUserAddressEntry)
{
exch = addr.GetExchangeUser();
smtpAddress = exch != null ? exch.PrimarySmtpAddress : null;
}
else if (addr.AddressEntryUserType == OlAddressEntryUserType.olOutlookContactAddressEntry)
{
cont = addr.GetContact();
//returns the actual contact but it has 3 email properties (Email1Address, Email2Address, Email3Address).
//How to identify which email has the user selected
}
}
else if (addr.Type == "SMTP")
{
smtpAddress = addr.Address;
}
如果 AddressEntryUserType 是 olExchangeUserAddressEntry 或 olExchangeRemoteUserAddressEntry,那么代码工作正常。但如果是本地 Outlook 联系人 (olOutlookContactAddressEntry),我不确定如何检索电子邮件地址。 GetContact 方法为我提供了实际联系方式,但由于它有 3 封电子邮件,我不知道如何找到用户在撰写电子邮件时选择的地址。
我已经尝试将基于 Exchange 的电子邮件地址转换为 SMTP,如本论坛所讨论的那样。但它正在产生巨大的性能影响。将一个地址转换为 SMTP 大约需要 300 毫秒。有没有其他有效的方法来识别收件人对象的电子邮件地址?
所选索引嵌入在 OAB 条目 ID 中 - 检查前 20 个字节是否 0x00,0x00,0x00,0x00,0xFE,0x42,0xAA,0x0A,0x18,0xC7,0x1A,0x10,0xE8,0x85,0x0B,0x65,0x1C,0x24,0x00,0x00
字节 25 是类型(0x5 是 DL,0x4 是联系方式)。字节 29 是索引(仅用于联系人):0 = 电子邮件 1,1 = 电子邮件 2,2 = 电子邮件 3,3 = 商务传真,4 = 家庭传真,5 = 其他传真。