首页 文章

VBA Lotus Notes - 弹出新的电子邮件窗口

提问于
浏览
0

我的任务是一个非常简单的目标 . 使用VBA在Lotus Notes中打开一个新的电子邮件窗口,但请继续阅读完全理解我的问题 . 目前,我已经开发了vba代码,可以在Lotus Notes中创建一个新的电子邮件,并用各种信息填充它,例如收件人,主题,正文和附件;然后最终将电子邮件发送给收件人 . 一切都完美无瑕 . 唯一的问题是它在幕后做了所有这些,如果不是与收件人核对,我不知道发送的电子邮件 . 为了解决这个问题,我希望vba代码在心理上弹出一个新的电子邮件窗口,其中包含所有相同的信息,但强迫我手动发送电子邮件(通过点击发送按钮) . 这样我知道电子邮件将被发送,所以我可以根据需要添加额外的信息 .

我看过的线程比我能算的多,而且似乎都解决了一个与我不同的问题 . 任何有关正确方向的建议或提示都将受到赞赏 .

谢谢!

谢谢你的建议 . 继承我的代码:

Sub Prepare_email()

Dim Maildb As Object
Dim MailDoc As Object
Dim Body As Object
Dim Session As Object
Dim Subject As String

'Start a session to notes
Set Session = CreateObject("Lotus.NotesSession")

'This line prompts for password of current ID noted in Notes.INI
Call Session.Initialize

'Open the mail database in notes
Set Maildb = Session.GETDATABASE("", MailDbName)
If Maildb.IsOpen = True Then

Else
    Call Maildb.Open
End If

'Create the mail document
Set MailDoc = Maildb.CREATEDOCUMENT
Call MailDoc.ReplaceItemValue("Form", "Memo")


'Set the recipient, calls a GetPrimary Email function
Call MailDoc.ReplaceItemValue("SendTo", GetPrimaryEmail)

'Set subject, calls subject function
Subject = getCompanyName
Call MailDoc.ReplaceItemValue("Subject", Subject)

'Create and set the Body content
Set Body = MailDoc.CREATERICHTEXTITEM("Body")
Call Body.APPENDTEXT("BODY Content")

'Example to save the message 
MailDoc.SAVEMESSAGEONSEND = True

'Send the document
Call MailDoc.ReplaceItemValue("PostedDate", Now())
Call MailDoc.SEND(False)

'Clean Up
Set Maildb = Nothing
Set MailDoc = Nothing
Set Body = Nothing
Set Session = Nothing

结束子

2 回答

  • 0

    通过“幕后”,我认为你的意思是你正在使用Notes“后端类” . 如果要在客户端中实际打开一个窗口,则必须使用“前端”类 .

    要理解的一个重要区别是“前端”类是作为OLE对象公开的(Notes.NotesUIWorkspace),而“后端”类是作为OLE(Notes.NotesSession)和COM(Lotus.NotesSession)公开的 . 对象 . 注意不同的前缀:OLE类的'Notes',COM类的'Lotus' .

    NotesUIWorspace类和您可以通过它驱动的其他前端类都是关于自动化Notes客户端的实际操作 . 您可以找到NotesUIWorkspace类here的文档 . 使用OLE类时,Notes客户端将自动启动,除非它已在运行 . 使用COM类时,Notes客户端不需要运行,也不会自动启动 .

  • 3

    第一步涉及保存文档而不是调用 Send ,即如果 docNotesDocument 类,则调用 Call doc.Save( True, True ) .

    第二步是使用 CreateObject("Notes.NotesUIWorkspace").EDITDOCUMENT True, doc 显示文档

    作为旁注:显示您的代码实际上有助于回答这个问题!

相关问题