2013-05-30 50 views
2

我們有一個應用程序,用戶可以單擊一個按鈕,在Outlook中打開一封新郵件。我正在編寫一個加載項,允許用戶將此電子郵件添加到我們編寫的電子郵件調度應用程序。 (Outlook中的延遲交付功能不太可靠)。從Outlook中檢索收件人新郵件

無論如何,用戶需要能夠修改電子郵件,使用我創建的自定義表單更改交付日期/時間,然後單擊按鈕將其添加到我們的調度程序數據庫。

我的問題是當我嘗試訪問收件人集合時,如果收件人無法解析,它不會被識別並且不會出現在收件人集合中,除非我保存郵件項目。

但是,如果我保存郵件項目,它會中斷呼叫應用程序之間的連接,它需要確認電子郵件已發送。目前我將郵件發送給用戶後,將其添加到我們的日程安排系統,以滿足呼叫應用程序。但是,如果我先保存郵件,則會引發錯誤。我也無法訪問調用應用程序的源代碼。

所以我需要的是一種訪問在收件人欄中輸入的地址而不保存郵件的方式。這可能嗎?

+0

爲什麼您在收到未解決的收件人郵件時收到錯誤消息?收件人什麼時候被訪問?如果光標仍處於「編輯」框中,則只有將焦點從「編輯」框移開或保存消息後,才能看到新的收件人。 –

回答

0

這篇文章可以幫助:

Create and send an Outlook message programmatically

您可以創建一個郵件項目和解析地址,但不保存。

尋找這一行的樣品中:

mailRecipient.Resolve(); 

什麼類型的應用程序進行調用Outlook嗎?

+1

問題是收件人收藏是空的,所以我無法調用mailRecipient.Resolve()。用戶在To:字段中輸入一個smtp地址。當我嘗試呼叫recipients.ResolveAll()時,它只是從文本框中清除輸入的地址。 mailItem.To字段也是空的。如果我看着收件人,數量爲零。我相信調用的應用程序是用Delphi編寫的。 – Ukodiak

+0

在循環收件人之前,請嘗試調用YourMailItem.Save()。 –

相關問題