0

我正在尝试在 Outlook 2007 及更高版本中确定电子邮件的发件人。在 Outlook 2010 中,您Sender在对象上有一个属性,而在 Outlook 2007 中,您必须像这个问题MailItem中提到的那样以不同的方式进行操作。

所以现在我需要知道当前版本的 Outlook 是否支持该Sender属性,如果不支持,请使用其他方法。这样做的原因是我更愿意使用该Sender属性来与未来版本的 Outlook 兼容,而不是在 Outlook 版本上设置条件。

所以问题是如何确定 Outlook Interop 中是否存在属性?显然,这是一个 COM 对象,我不能在这里使用反射。

4

2 回答 2

1

我使用 MailItem.ItemProperties 集合来检查“Sender”属性。下面是代码

Microsoft.Office.Interop.Outlook.MailItem myMail;

//Code to get the mail
....

Microsoft.Office.Interop.Outlook.ItemProperties mailProps = myMail.ItemProperties;

Microsoft.Office.Interop.Outlook.ItemProperty mailProp = mailProps.Item  ("Sender"); //the parameter is case-sensitive

if(mailProp != null)
{
    //get email address using Sender object
    Microsoft.Office.Interop.Outlook.AddressEntry theSender = myMail.Sender;
}
else
{
    //use alternate method for Outlook 2007 
}
于 2012-08-03T13:12:19.493 回答
0

您可以使用IDispatch::GetIDsOfNames查看属性是否存在

于 2012-08-03T06:50:35.317 回答