2012-09-29 40 views
2

我正在爲Outlook構建一個共享插件。防止MailItem.Reply在Outlook 2010中打開Inspector窗口?

在代碼中,我使用MailItem.Reply()方法 創建回覆電子郵件,稍後將其丟棄。我正在使用它來獲取通過Exchange服務器發送的電子郵件的發件人電子郵件地址 。

這是工作的罰款Outlook 2007中 但展望2010年,應答方法似乎打開郵件編輯窗口。

我在Windows 7

有什麼辦法來抑制窗口或寫入基於Microsoft Outlook版本單獨的代碼?

+0

請在標題中提問「真正的問題」。是的,可以檢測到OL版本,但更有趣的是*爲什麼*是'Reply'打開一個新的Inspector窗口? (另外,檢測版本*收益*無關,除非有一個工作有關特定版本)。 – 2012-09-29 20:25:41

+0

我的標題誤導道歉。是的,我同意你的評論。 – Rakib

+0

我不記得這(隱式顯示器)發生,並且它不記錄/注意到這樣只要我可以告訴做;它可能是一些其他代碼的副作用嗎? (也就是說,這可以在加載項,轉載*僅*使用'MailItem.Reply'?例如在初始化,「回覆」在收件箱中的第一條消息) – 2012-09-29 21:03:48

回答

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; 
} 
+0

很好的建議!我會嘗試並讓你知道。 – Rakib

+1

它似乎工作很棒!謝謝。 – Rakib