2

Outlook 用の共有アドインを構築しています。

コード内では、MailItem.Reply()メソッドを使用して返信メールを作成し、後で破棄しています。これを使用して、Exchange サーバーを経由する電子メールの送信者の電子メール アドレスを取得しています。

Outlook 2007 では問題なく動作していましたが、Outlook 2010 では Reply メソッドがメール エディタ ウィンドウを開くようです。

私はWindows 7を使用しています。

そのウィンドウを抑制したり、Outlook のバージョンに基づいて別のコードを記述したりする方法はありますか?

4

1 に答える 1

1

メッセージを破棄する予定がある場合は、最初から作成しないでください (メッセージを送信するつもりがない場合は使用しReply()ないでください)。このRecipientクラスを使用すると、最小限のリソース使用率で Exchange ユーザーの電子メール アドレスを解決できます。

string senderEmail = string.Empty;
Outlook.Recipient recipient = mailItem.Application.Session.CreateRecipient(mailItem.SenderEmailAddress);
if (recipient != null && recipient.Resolve() && recipient.AddressEntry != null) 
{
    Outlook.ExchangeUser exUser = recipient.AddressEntry.GetExchangeUser();
    if (exUser != null && !string.IsNullOrEmpty(exUser.PrimarySmtpAddress))
       senderEmail = exUser.PrimarySmtpAddress;
}
于 2012-10-01T17:00:46.300 に答える