使用 Power Builder 通过 Lotus Notes 发送邮件。






4.56/5 (6投票s)
2006年1月6日
5分钟阅读

105287

2122
本文旨在介绍如何使用 Power Builder 通过 Lotus Notes 发送邮件的基本方法。
引言
本文旨在介绍如何使用 Power Builder 通过 Lotus Notes 发送邮件的基本方法。此方法使用了 OLE 对象技术。在这里,我们使用 Lotus Notes 的内置类来执行所需功能。我们将这些类的对象创建为 OLE 对象。有关 Lotus Notes 类的更多信息,请浏览以下 链接。
注意
- 此代码不包含适当的错误处理。
- 此代码已在 Power Builder 10.0 (Build 4510) 和 Lotus Notes 6.5 中进行了测试。
- 在运行代码之前,请确保 Lotus Notes 已使用用户计算机过程打开。
以下过程使用 OLE 对象技术通过 Lotus Notes 发送邮件。必须声明以下 OLE 对象
- Notes 会话对象(“
notesSession
”) - Notes 数据库对象(“
notesDatabase
”) - Notes 文档对象(“
notesDocument
”) - RTF 对象(“
notesRichTextItem
”) – 此对象用于在 Notes 中创建附件。
步骤 1:创建到 Lotus Notes 的连接
首先,必须使用“ConnectTONewObject
”命令建立与 Lotus Notes 的连接。
notesSession = Create oleobject
notesSession.ConnectTONewObject("Notes.Notessession")
步骤 2:连接到数据库
创建 Notes 会话后,必须打开数据库。这可以通过“GetDatabase
”命令完成。
GetDatabase
方法创建一个 NotesDatabase
对象,该对象表示位于服务器上的数据库。第一个参数是服务器名称,第二个参数是用户名。通常,我们必须指定服务器和用户名。将它们留空将连接到默认服务器。
语法
用于默认服务器连接
notesDatabase = notesSession.GetDatabase("","")
用于其他数据库
notesDatabase = notesSession.GetDatabase("<SERVER >"," <USERNAME >")
连接到数据库后,必须打开邮箱。这可以通过“OpenMail
”命令完成。OpenMail
方法在 notes.ini 文件中查找当前用户的邮件服务器和数据库并将其打开。首先检查当前用户的数据库是否已打开,然后在未打开时打开它,这是一个好习惯。
IF NOT notesDatabase.IsOpen THEN
notesDatabase.OpenMail()
END IF
步骤 3:创建文档
打开数据库后,必须创建一个新的 Notes 文档(在 Notes 中,新邮件表示为一个文档)。这可以通过“CreateDocument
”命令完成。
CreateDocument
方法在数据库中创建一个文档,并返回一个表示新文档的 NotesDocument
对象。
notesDocument = notesDatabase.CreateDocument
设置属性
表单
将 Form
设置为“Memo
”,以便收件人可以将其作为邮件备忘录阅读
notesDocument.Form = "Memo"
主题
使用 subject
属性设置邮件主题
notesDocument.Subject = "Hello"
正文
邮件正文可以视为一个富文本项。使用“CreateRichTextItem
”命令在文档中创建一个新的富文本项。
CreateRichTextItem
方法使用您指定的名称在文档中创建一个新的富文本项,并返回相应的 NotesRichTextItem
对象。
notesRichTextItem = notesDocument.CreateRichTextItem("Body")
创建 RTF 对象后,可以使用“AppendText
”命令将文本追加到邮件正文。
NotesRichTextItem.AppendText("Here comes the body of the mail")
Attachment
可以使用“EmbedObject
”命令将附件添加到 RTF 对象。
NotesRichTextItem.EmbedObject*(1454, "", "<Attachment Path>", "")
此命令将只添加一个附件到邮件正文。要添加更多附件,我们需要重复使用相同的命令。第三个参数将为空,第一个参数将设置为 1454。
例如
NotesRichTextItem.EmbedObject(1454, "", "C:\Attachment1.doc", "")
NotesRichTextItem.EmbedObject(1454, "", "C:\Attachment2.doc", "")
收件人设置
收件人的邮件 ID 以字符串形式存在。对于多个收件人,应使用字符串数组。
请参阅以下示例以设置多个收件人
String Recipient_arr[]
Recipient_arr[1] = recp1.one@tcs.com
Recipient_arr[2] = recp2.two@tcs.com
为了将此列表设置为“收件人”列表,请使用“SendTo
”属性。
NotesDocument. SendTo = Recipient_arr
为了将此列表设置为“抄送”列表,请使用“CopyTo
”属性。
NotesDocument.CopyTo = Recipient_arr
为了将此列表设置为“密送”列表,请使用“BlindCopyTo
”属性。
NotesDocument.BlindCopyTo= Recipient_arr
文档对象的其他属性
保留字段名称 | 值 | 注释 |
DeliveryPriority |
L, N, H | 值对应:低、普通或高优先级。 |
DeliveryReport |
N, B, C, T | 值对应:无、仅在失败时、确认送达、跟踪完整路径。 |
加密 |
1, 0 | 使用 1 加密邮件文档。 |
ReturnReceipt |
1, 0 | 使用 1 在收件人打开文档时发送回执。 |
Sign |
1, 0 | 使用 1 为字段添加电子签名。(仅当表单还包含启用签名的字段时适用。) |
SaveMessageOnSend |
True , False |
如果为 True,文档将被保存在已发送邮件列表中。 |
PostedDate |
今天的日期时间 | 在 PB 中,可以使用“NOW ”函数检索此值。 |
注意:此处,即使是数值也应设置为字符,例如。
NotesDocument.ReturnReceipt = ‘1’
保存文档
Save
方法用于保存对文档所做的任何更改。
示例
NotesDocument.Save(TRUE, FALSE ,TRUE)
语法
notesDocument.Save( force, createResponse [, markRead ] )
参数
force
布尔值。如果为
True
,即使在脚本运行时有人编辑并保存了文档,该文档也会被保存。最后保存的文档版本生效;早期版本将被丢弃。如果为False
,并且在脚本运行时有人编辑了文档,则createResponse
参数将决定文档的处理方式。createResponse
布尔值。如果为
True
,则当前文档将成为原始文档的响应(当出现复制冲突时,复制器就是这样做的)。如果为False
,则保存将被取消。如果force
参数为True
,则createResponse
参数无效。markRead
布尔值。如果为
True
,则文档将被标记为已读。如果为False
(默认),则文档不会被标记为已读。
步骤 4:发送文档
准备好文档后,使用“Send
”命令发送。
语法
NotesDocument.Send(FALSE)
现在,发送邮件的过程已完成。
步骤 5:清理
发送邮件后,用户需要释放内存并关闭所有连接。这包括断开会话对象连接和销毁 OLE 对象。
notesSession.close()
notesSession.DisconnectObject()
DESTROY NotesSession
DESTROY NotesDatabase
DESTROY NotesDocument
DESTROY NotesRichTextItem