莲花笔记 VBA 电子邮件自动化 - db.创建文档命令失败



我正在尝试使用VBA通过Lotus Notes 9.0自动发送电子邮件。代码将加载注释,要求输入我的密码,但在密码提示出现之前,我收到错误。我遇到的错误是"运行时错误'-2147417851 (80010105)':自动化错误服务器抛出异常" 当我点击调试时,它失败的行是"设置 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 的值。

最新更新