2010-10-15 39 views
0

我正在處理一個任務,在該任務中,我的.net應用程序應該使用Dominos.dll使用Lotus Notes客戶端(不是SMTP)使用.NET發送電子郵件。我也可以發送郵件。但是,當我關閉我的Lotus Notes郵件客戶端並嘗試運行不傳遞郵件的應用程序時,問題就出現了。原因,我認爲他們被存儲在「發送郵件」中。再次當我通過輸入我的用戶名和密碼重新打開我的Lotus Notes客戶端時,那麼「發送郵件」中的郵件已經發送。 她的一位紳士建議我,我連接到我的本地副本發送電子郵件,並告訴我將我的數據庫名稱更改爲服務器數據庫文件。我改變了連接到服務器現在我得到這個錯誤「數據庫打開失敗。」有趣的是,如果我使用「names.nsf」文件,我沒有得到例外。但是,如果我更改爲我的「username.nsf」它無法連接,並給我這個錯誤。但是,如果我使用「names.nsf」文件,當我關閉蓮花筆記並運行我的應用程序時,郵件未收到。使用.NET通過蓮花筆記發送電子郵件時發生「數據庫打開失敗」異常

以下是我用來發送電子郵件的代碼。

oNotesSession = new NotesSession(); 
oNotesSession.Initialize("******"); //password 
oNotesDatabase = oNotesSession.GetDatabase("servername", "names.nsf", false); 

if (!oNotesDatabase.IsOpen) 
oNotesDatabase.Open(); 

oNotesDocument.ReplaceItemValue("Form", "Memo"); 
oNotesDocument.ReplaceItemValue("SendTo", strToAddress); 
oNotesDocument.ReplaceItemValue("body", mData.Body); 
oNotesDocument.ReplaceItemValue("Subject", mData.Subject); 
oNotesDocument.ReplaceItemValue("$KeepPrivate", "1"); 
oNotesDocument.ReplaceItemValue("postDate", DateTime.Now.ToShortDateString()); 
oItemValue = oNotesDocument.GetItemValue("SendTo"); 
oNotesDocument.Send(false, ref oItemValue); 

回答

0

確保您可以使用通過.NET使用的相同登錄名打開相同的數據庫。換句話說,只需打開Notes客戶端並嘗試在服務器上打開該username.nsf文件即可。機會是你沒有權利,該服務器。

你肯定不希望從NAMES.NSF發送電子郵件,(但理論上仍然可以工作。)

順便說一句,您的來電oNotesDatabase.Open後();您需要創建Notes文檔:

oNotesDocument = oNotesDatabase.CreateDocument(); 
相關問題