2011-12-27 77 views
3

我無法找到簡單的sdk來集成我的c#winform應用程序中的Notes客戶端。使用c#和Lotus Notes使用客戶端發送郵件

要求: 在c#WinForm應用程序中,我必須通過電子郵件發送通知。這些電子郵件應存儲在最終用戶郵件客戶端的「已發送」文件夾中。收到電子郵件的人應該看到郵件不是來自應用程序,而是其他人的郵箱。

方法: 由於我需要將電子郵件存儲在最終用戶的發送文件夾中,我以爲我應該使用一些Notes-api,並讓客戶端應用程序負責存儲和發送電子郵件。或者使用後期綁定。

問題: 我沒有安裝Lotus Notes並且沒有安裝它(我可以在另一個非開發人員機器上測試)。顯然,只有通過下載和安裝Lotus Notes應用程序才能獲得正確的interop-dll。

問題: - 根據我的理解,我瞭解到有兩個interop-dll:服務器(Domino)1和客戶端(Notes)1。後者僅支持32位版本的客戶端。那是對的嗎? - 有沒有人有我需要的sdk或dll的下載鏈接?

回答

0

實際上有三種選擇:來自cleint代碼的COM interop,來自服務器代碼的COM interop或來自客戶端代碼的OLE類。後者要求不僅安裝Notes客戶端,而且在代碼發送消息時實際運行Notes客戶端,因爲OLE調用實際上驅動客戶端前端UI來完成這項工作。你可能不希望這樣。

但是,我認爲你仍然會放棄你的「而不是安裝它」的偏好。除了COM Interop層之外,無論您用於Notes/Domino開發的API是什麼,您都必須在運行代碼的機器上安裝Notes核心DLL。這意味着您必須在運行代碼的框中安裝Domino服務器或Notes客戶機。 (唯一的例外是Java程序員,他們可以使用一個API來調用IIOP來移除在Domino服務器上執行的API。)

是的,我知道你說你會做後期綁定...並且理論上講,只要您的測試機器上存在Notes clode,就可以避免在您的開發機器上安裝Notes clode。但在這種情況下,您的測試機器真的要爲您的開發機器這部分項目。你最終會在那裏調試和修改你的代碼,並且你會在沒有編譯器的幫助下做到這一點。我沒有看到早期綁定的編譯時好處,只是爲了讓Lotus Notes關閉你的機器。它不咬人,真的;-)

至於你的具體問題,唯一可用的客戶端代碼是32位,並且核心DLLS和COM接口隨它一起。試用客戶端下載可用here。但是,您真正應該做的是獲得免費的Domino Designer下載here,其中包含客戶端代碼,並且還包含所有開發人員幫助文件和示例。作爲替代方案,您可以安裝64位Domino服務器代碼而不是客戶端代碼,並且64位COM接口確實存在 - 但它們不受IBM支持,並且存在一些不起作用的情況。

+0

非常感謝您的回答。我不想安裝的原因有兩個:我已經安裝了很多軟件,其中大多數我都很少使用,它填滿了我的驅動器並使我的電腦變慢,例如, DB2,MySQL,MSSQL,Oracle客戶端以及該列表繼續。結合我的應用程序不是每個用戶都有Notes客戶端的事實:他們使用Outlook,讓我覺得我應該使用後期綁定。 – Martin 2011-12-27 20:49:16

+0

我不知道有一個Domino Designer的免費版本:在第5版仍然很常見的日子裏,我將它重新編程,並且您必須爲此付出很多^^所以,非常感謝您指出這一點。 儘管如此,它看起來仍然會使用.Net SMTPClient:維護起來很麻煩,所以最終用戶可以在他們的「發送」文件夾中看到發送的通知。 – Martin 2011-12-27 20:55:48

+0

還有另一種選擇,我曾用過一次。不能說我推薦它,但我會提到它。這取決於在至少一臺服務器上啓用Domino HTTP任務。您的C#代碼根本不需要任何Notes API代碼。它只對運行在服務器上的代理執行HTTP POST,代理中的代碼(可以是LotusScript或Java)執行實際的發送操作,然後代理打開發件人的郵件文件並保存該消息。這個解決方案中有很多'移動部件'和棘手的細節 - 但這是我當時處理的情況的最佳解決方案。 – 2011-12-28 02:10:51

相關問題