我几乎没有 Lotus Script 或 Notes/Domino 知识,但我有一个程序,很久以前从某个地方复制的,它允许我通过 VBA 的 Notes 发送电子邮件。我通常只将它用于格式并不重要的内部通知。
我现在想用它来向客户发送外部电子邮件,而公司类型更希望电子邮件符合我们的样式指南(基本上是无衬线字体)。
我正要告诉他们该代码仅适用于纯文本,但后来我注意到该例程确实引用了某种 CREATERICHTEXTITEM 对象。这是否意味着我可以在正文字符串传递给邮件例程后对其应用某种格式?除了维护我们宝贵的品牌价值外,这对我强调电子邮件中的某些段落非常方便。
我对“网络”进行了深入研究,以查看是否可以修改此代码,但不熟悉 Notes 的对象模型,并且在线 Notes 资源似乎反映了应用程序自身的迟钝这一事实,这意味着我没有得到远的。
编码:
Sub sendEmail(EmailSubject 作为字符串,EMailSendTo 作为字符串,EMailBody 作为字符串,MailServer 作为字符串)
将 objNotesSession 调暗为对象
将 objNotesMailFile 调暗为对象
将 objNotesDocument 调暗为对象
将 objNotesField 调暗为对象
将 sendmail 调暗为布尔值
'添加用于集成到报告工具中
将 dbString 调暗为字符串
dbString = "mail\" & Application.UserName & ".nsf"
出错时转到 SendMailError
'建立与笔记的连接
设置 objNotesSession = CreateObject("Notes.NotesSession")
出错时继续下一步
'建立与邮件文件的连接
设置 objNotesMailFile = objNotesSession.GETDATABASE(MailServer, dbString)
'打开邮件
objNotesMailFile.OPENMAIL
错误转到 0
'创建新备忘录
设置 objNotesDocument = objNotesMailFile.createdocument
将 oWorkSpace 作为对象,oUIdoc 作为对象
设置 oWorkSpace = CreateObject("Notes.NotesUIWorkspace")
设置 oUIdoc = oWorkSpace.CurrentDocument
'创建'主题字段'
设置 objNotesField = objNotesDocument.APPENDITEMVALUE("Subject", EmailSubject)
'创建'发送到'字段
设置 objNotesField = objNotesDocument.APPENDITEMVALUE("SendTo", EMailSendTo)
'创建'复制到'字段
设置 objNotesField = objNotesDocument.APPENDITEMVALUE("CopyTo", EMailCCTo)
'创建'盲复制到'字段
设置 objNotesField = objNotesDocument.APPENDITEMVALUE("BlindCopyTo", EMailBCCTo)
“创建”备忘录的“正文”
设置 objNotesField = objNotesDocument.CREATERICHTEXTITEM("Body")
使用 objNotesField
.APPENDTEXT 电子邮件正文
.ADDNEWLINE 1
结束于
'发送电子邮件
调用 objNotesDocument.Save(True, False, False)
objNotesDocument.SaveMessageOnSend = True
'objNotesDocument.Save
objNotesDocument.Send (0)
'释放存储
设置 objNotesSession = 无
设置 objNotesMailFile = 无
设置 objNotesDocument = 无
设置 objNotesField = 无
'设置返回码
发送邮件 = 真
退出子
发送邮件错误:
暗消息
Msg = "Error # " & Str(Err.Number) & " 由 " _ 生成
& Err.Source & Chr(13) & Err.Description
MsgBox Msg, , "错误", Err.HelpFile, Err.HelpContext
发送邮件 = 假
结束子