2017-04-20 69 views
0

我想發送附件從蓮花筆記的電子郵件。發送電子郵件從蓮花筆記與附件使用asp.net c#

這個我試過下面的代碼,它顯示錯誤:

錯誤:

An exception of type 'System.Runtime.InteropServices.COMException' occurred in App_Web_sendemail.aspx.cdcab7d2.s2ysjl2c.dll but was not handled in user code 

Additional information: Database open failed (xx.xxx.xxx.xxx!!names.nsf) 

代碼:

Domino.NotesSession nSession = new Domino.NotesSession(); 
     nSession.Initialize("bbau0862"); //Password 

     Domino.NotesDatabase nDatabase = 
    nSession.GetDatabase("xx.xxx.xxx.xxx", "names.nsf"); 

     //If the database is not already open then open it. 
     if (!nDatabase.IsOpen) 
     { 
      nDatabase.Open(); 
     } 

     Domino.NotesDocument nDocument = nDatabase.CreateDocument(); 
     /*create string variable that will be passed to function. This way we setup To field value*/ 
     string[] recipients = 
      {"[email protected]", "[email protected]"}; 

     //setup Form 
     nDocument.ReplaceItemValue("Form", "Memo"); 
     nDocument.ReplaceItemValue("SentTo", recipients); //To field 
     nDocument.ReplaceItemValue("Subject", "Message subject"); //message subject 
     nDocument.ReplaceItemValue("Body", "Something in the message body"); //set body text 
     nDocument.SaveMessageOnSend = true; //save message after it's sent 
     nDocument.Send(false, recipients); //send 

請告訴我如何發送Lotus Notes電子郵件與ASP附件。淨。

謝謝。

回答

-1

它發生在我身上我發現這個錯誤,使用C#或PowerShell的Domino。 我想你嘗試在64位應用程序中使用32位多米諾骨牌COM組合(64位不存在多米諾骨牌客戶端)。 這意味着多米諾複合材料將在一個* 86 PowerShell控制檯中工作,當它將此錯誤引發到64位PowerShell控制檯。

解決方案恐怕是重新編譯* 86的項目!

這裏查看更多詳細信息: Is a COMException of 0x80040154 always 'Class not registered'?

,所以我使用Domino COM你指出我的經驗是非常bugy你最好有你的多米諾骨牌團隊做出的用戶信息web服務。

使用多米諾骨牌作爲示例強制一切以x86運行。 ,並且在客戶端應用程序中,COM將在您的用戶的Lotus Notes Notes客戶端(BOSS?)的同一時間在任何c#無關的錯誤kiling中崩潰。

+1

這不是錯誤,他得到了「數據庫打開失敗(xx.xxx.xxx.xxx !! names.nsf)」。如果代碼加載失敗,代碼永遠不會得到那麼多。 –

2

您的代碼無法打開數據庫的names.nsf。在詢問如何發送帶有附件的電子郵件之前,您需要弄清楚爲什麼代碼無法打開數據庫。

對此的一些可能的解釋是:您無法連接到服務器,您無法訪問服務器,或者無法訪問數據庫。你需要檢查所有這些東西。

在運行代碼的機器上安裝了哪些IBM Lotus代碼? Notes客戶端代碼是否已安裝或者是否安裝了Domino服務器代碼?一個或另一個必須是,如果它是服務器代碼,則它必須是32位版本,因爲IBM不支持Domino的64位COM類。

您需要檢查代碼是否可以連接到服務器'xx.xxx.xxx.xxx'。客戶端和服務器都具有可用於檢查的Trace功能。參見help for client trace)或help for server trace

您還需要檢查當前用戶標識(與密碼「bbau0862」對應的密碼文件名或服務器密鑰文件名所指向的Initialize()方法中的哪一個(必須是當前標識) Notes客戶機的notes.ini文件中的條目或 - 服務器上安裝的Domino服務器的條目可以訪問服務器'xx.xxx.xxx.xxx'和數據庫'names.nsf'(如果它有權訪問服務器,它應該可以訪問names.nsf,但是如果它是某種特殊的ID,專門爲您的應用程序提供的,那麼您應該檢查它們!這兩個都很容易使用Notes客戶端進行檢查,並且那個ID