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 に答える