2012-05-11 46 views
0

我有一個使用Outlook發送到通訊組列表的第三方應用程序。我認爲這是使用擴展MAPI完成的。由於如果生成大量郵件,Outlook可能會掛起,所以我想創建一個服務,讀取存儲在MessageStore的發件箱中的郵件,通過SMTP網關發送郵件並從發件箱中刪除發送的郵件。所有這些都應該在不需要運行Outlook的情況下完成 - Outlook仍然會被安裝。如何使用Delphi來解析和刪除發件箱中的本地MAPI郵件存儲郵件

我想知道我剛剛描述的如何使用Delphi而不使用任何第三方商業組件。我一直在研究很多天,但找不到任何示例代碼或示例。儘管簡單的MAPI有很多代碼。欣賞任何指針。 :)

回答

1

Outlook異步發送消息,所以我假設問題是使用Outlook對象模型(發生在主Outlook線程上)生成消息的第三方應用程序。一旦消息被提交,它們將被異步發送。

+0

謝謝。即使沒有運行Outlook,第三方應用程序也能夠生成消息。 Outlook對象模型是這樣工作的嗎? – Joshua

2

您需要的是Outlook自動化,因此您需要像德米特里已經提到的那樣查看Outlook對象模型。

在Outlook對象模型的文檔在MSDN上提供:http://msdn.microsoft.com/en-us/library/aa221870(v=office.11).aspx

,這應該讓你開始從任何應用程序自動運行Outlook:http://msdn.microsoft.com/en-us/library/aa209963(v=office.11).aspx是的,它是關於從Visual Basic應用程序自動運行Outlook,但其概念是不管您使用哪種環境來自動化Outlook。

而且德博拉·佩特的網站,而現在看來,這已經不再定期更新,仍持有自動化德爾福任何Office應用程序非常有價值的信息:http://www.djpate.freeserve.co.uk/Automation.htm

從那裏往前走,這個問題將幫助您開始找到發件箱:Outlook Object Model - Detecting Mailboxes

+0

感謝您的詳細解答。我的解決方案需要在沒有Outlook在後臺運行的情況下工作。我設法在此網站上找到擴展的MAPI代碼 - http://www.evocorp.com/Delphi/ADDExtendedMapi.htm但是,雖然它可以枚舉發件箱中的郵件,但我無法從發件箱中刪除郵件。它可以刪除收件箱中的郵件。 – Joshua

相關問題