2015-04-24 93 views
0

我試圖使用VBA通過Lotus Notes 9.0自動發送電子郵件。該代碼將加載註釋,該註釋詢問我的密碼,但在密碼提示出現之前,我收到錯誤消息。我運行的錯誤是「運行時錯誤'-2147417851(80010105)':自動化錯誤服務器拋出異常」當我打開調試時,它失敗的行是「Set obDoc = obDB.CreateDocument」。很多我在網上看到的例子明智地與我在我的代碼中做的事情相匹配,所以我不確定問題出在哪裏。Lotus Notes VBA電子郵件自動化 - db.CreateDocument命令失敗

下面的代碼:

Sub Send_Emails() 
Dim stSubject As Variant 
Dim emailList As Variant 
Dim obSess As Object 
Dim obDB As Object 
Dim obDoc As Object 

'----Create Email List - separate function, dynamically creates email list based off report processing done in other functions 
CreateEmailList 

'----Info for Subject 
stSubject = "test subject" 

'----Create Notes Session 
Set obSess = CreateObject("Notes.NotesSession") 
Set obDB = obSess.GETDATABASE("", "") 
If obDB.IsOpen = False Then 
    Call obDB.OPENMAIL 
End If 

'----Create the e-mail - **FAILURE OCCURS HERE** 
Set obDoc = obDB.CreateDocument 

'----Add values to the email 
With obDoc 
    .form = "Memo" 
    .SendTo = "[email protected]" 
    .blindcopyTo = emailList 
    .Subject = stSubject 
    .HTMLBody = "<HTML><BODY><p>test</p></BODY></HTML>" 
    .SaveMessageOnSend = True 
    .PostedDate = Now() 
    .Send 0, emailList 
End With 

'----Clean Up 
Set obDoc = Nothing 
Set obDB = Nothing 
Set obSess = Nothing 

MsgBox "The e-mail has been sent successfully", vbInformation 
End Sub 

回答

1

你提到您正在使用的注意事項9,所以我看了網上的幫助,在爲Notes 9.01和help page for the OpenMail method

注意:此方法支持僅在LotusScript®中。對於COM,請在NotesDbDirectory中使用OpenMailDatabase。

現在,你實際使用OLE自動化類(上植根於Notes.NotesSession),而不是COM類(上植根於Lotus.NotesSession),所以我不知道是否可以使用NotesDbDirectory類或者不是,但打開當前用戶的郵件數據庫的另一種方式是調用NotesSession.GetEnvironmentString(「MailServer」,true)和NotesSession.GetEnvironmentString(「MailFile」,true),並將其用作呼叫的值GetDatabase。

相關問題