Lotus Notes VBA电子邮件自动化 – db.CreateDocument命令失败

我试图通过使用VBA的Lotus Notes 9.0自动发送电子邮件。 代码将加载笔记,要求我的密码,但在密码提示出现之前,我得到一个错误。 我运行的错误是“运行时错误'-2147417851(80010105)':自动化错误服务器抛出一个exception”当我打到debugging时,失败的行是“Set obDoc = obDB.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 = "test@test.com" .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 

您提到您使用的是Notes 9,所以我查看了Notes 9.01的在线帮助,而OpenMail方法的帮助页面显示

注:仅在LotusScript®中支持此方法。 对于COM,请使用NotesDbDirectory中的OpenMailDatabase。

现在,您实际上正在使用OLE自动化类(植根于Notes.NotesSession),而不是COM类(植根于Lotus.NotesSession),所以我不知道是否可以使用NotesDbDirectory类,但不知道打开当前用户的邮件数据库的方法是调用NotesSession.GetEnvironmentString(“MailServer”,true)和NotesSession.GetEnvironmentString(“MailFile”,true),并将这些值作为调用GetDatabase的值。