65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.56/5 (6投票s)

2006年1月6日

5分钟阅读

viewsIcon

105287

downloadIcon

2122

本文旨在介绍如何使用 Power Builder 通过 Lotus Notes 发送邮件的基本方法。

引言

本文旨在介绍如何使用 Power Builder 通过 Lotus Notes 发送邮件的基本方法。此方法使用了 OLE 对象技术。在这里,我们使用 Lotus Notes 的内置类来执行所需功能。我们将这些类的对象创建为 OLE 对象。有关 Lotus Notes 类的更多信息,请浏览以下 链接

注意

  1. 此代码不包含适当的错误处理。
  2. 此代码已在 Power Builder 10.0 (Build 4510) 和 Lotus Notes 6.5 中进行了测试。
  3. 在运行代码之前,请确保 Lotus Notes 已使用用户计算机过程打开。

以下过程使用 OLE 对象技术通过 Lotus Notes 发送邮件。必须声明以下 OLE 对象

  1. Notes 会话对象(“notesSession”)
  2. Notes 数据库对象(“notesDatabase”)
  3. Notes 文档对象(“notesDocument”)
  4. 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
© . All rights reserved.