Tivoli 服务台 6.0 开发工具包脚本语言参考
返回主页
返回通讯录中所有条目的列表。
FUNCTION MAILAddressBookEntries(VAL session: MAIL Session, VAL addrBookName: STRING, REF addrBookEntries: LIST of MAILABEntry): INTEGER;
自变量名称 | 说明 |
session | 邮件会话标识符。 |
addrBookName | 要打开的通讯录名称。可以将下列符号名用作打开标准通讯录的快捷方式:
|
addrBookEntries | 对给定通讯录里的条目进行说明的 MailABEntry 记录列表。 |
只有 VIM 支持该函数。
VARIABLES session: MAILSession; AddressBookName: String; AddressBookEntries: LIST of MAILABEntry rc:Integer;
ACTION
AddressBookName := 'Private Mailing List'; rc := MAILAddressBooksEntries(session, AddressBookName, AddressBookEntries); IF rc = 1 THEN (* Address Book Entries available *) ELSE (* Error occurred in reading address book entries. *) END; END;
返回码 | 说明 |
1 | 成功完成 |
小于 1 | 错误 |
关于 TSD 脚本邮件错误代码的完整列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
返回当前会话可用的通讯录名称列表。
FUNCTION MAILAddressBooks(VAL session:MAILSession, REF AddrBooks: LIST of STRING): INTEGER;
自变量名称 | 说明 |
session | 会话标识符 |
AddrBooks | 对该会话可用的通讯录名称列表(返回值) |
只有 VIM 支持该函数。
VARIABLES session: MAILSession; rc:Integer; AddressBooks: LIST of String;
ACTIONS
(* A MAILSession is opened. *)
rc := MAILAddressBooks(session, AddressBooks); IF rc = 1 THEN (* The list of address book names available to this session is stored in AddressBooks *) ELSE (* Function failed *) END; END;
返回码 | 说明 |
1 | 成功完成 |
小于 1 | 错误 |
关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
关闭消息容器。
FUNCTION MAILCloseMessageContainer(VAL msgContainer: MAILContainer): INTEGER;
自变量名称 | 说明 |
msgContainer | 打开的消息容器标识符。 |
VARIABLES msgContainer :MAILContainer;
ACTIONS
(* Message Container Opened and used *)
rc := MAILCloseMessageContainer(msgContainer); IF rc = 1 THEN (* Message container closed successfully *) ELSE (* Function failed *) END; END;
返回码 | 说明 |
1 | 成功完成。 |
小于 1 | 错误。 |
关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
关闭会话。
FUNCTION MAILCloseSession(REF session: MAILSession): INTEGER;
自变量名称 | 说明 |
session | 标识要关闭的会话。 |
邮件会话结束时,必须将所有打开的邮件会话都关闭。关闭会话可以释放所有与该会话关联的系统资源。在程序终止时关闭已打开的会话失败,可能导致内存丢失。
注:关于 MailSendHeader 记录结构的说明,请参见 Tivoli 服务台开发工具包程序设计指南。
VARIABLES rc:Integer; session: Integer;
ACTIONS rc := MAILOpenSession('F:\CCMAIL\CCDATA', 'VIMAPPLICATION', 'PASSWD', OMISEL_CP1252, session); IF rc <> 1 THEN (* Error in opening session *) ELSE
(* Perform some operations with the open session. *)
rc := MAILCloseSession(session); IF rc <> 1 THEN (* Error in closing session *) END; END; END;
返回码 | 说明 |
1 | 成功完成 |
小于 1 | 错误 |
关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见
Tivoli 服务台 6.0 开工具包程序设计指南。
返回用户名或与会话参数中指定的会话相关联的消息应用程序的名称。
FUNCTION MAILGetEntityName(VAL session: MAILSession, REF Name: MAILName): INTEGER;
自变量名称 | 说明 |
session | 需要用户名的会话的标识符。如果指定了 $Unknown,将返回用户或消息应用程序的缺省名称。如果没有可用的缺省值,将返回错误。 |
Name | 接收用户名的 MailName 记录。根据该函数的返回,将只填充 MailName 记录的有区别的名称部分。 |
KNOWLEDGEBASE ERROR;
USES mail;
ROUTINES PROCEDURE Mail;
PRIVATE ROUTINES
PROCEDURE Mail IS
VARIABLES sess :MAILSession; reply :string; rc :INTEGER;
ACTIONS
rc:=MAILOpenSession ('mailserv.microsoft.com', 'bgates@microsoft.com', 'password',$UNKNOWN, sess,OMI_VIM_INTERFACE); IF rc < 1 THEN WinMessageBox($Desktop,'Error',$MBIconError, 'Open session failed: '&rc);
MailGetLastErrorText(OMI_SMTP_POP_INTERFACE, sess,rc, rc, reply); WinMessageBox($Desktop,'Error',$MBIconError, 'Open session failed: '& reply); MAILTerminate(OMI_SMTP_POP_INTERFACE); EXIT; END;
END;
只有 VIM 支持该函数。
关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
返回与上一次失败操作有关的错误文本。
FUNCTION MAILGetLast ErrorText( VAL protocol: INTEGER, VAL sessID: MAILSession, VAL errCode: INTEGER, REF LastErrCode: INTEGER, REF ErrText: STRING)
自变量名称 | 说明 |
protocol | 标识用于同邮件系统进行通信的协议 |
sessID | 标识会话(返回值 MailOpenSession) |
errCode | 上一次邮件函数调用返回的错误代码的值 |
LastErrCode | 上一次邮件函数调用返回的错误代码 |
ErrText | 在该参数中返回的上一批错误文本 |
只有 VIM 支持该函数。
关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
初始化 TSD 脚本邮件接口。它是使用任何 TSD 脚本邮件接口服务前应当首先调用的函数。
MAILInitialize (VAL protocol:INTEGER): INTEGER
自变量名称 | 说明 |
protocol | 标识用于同邮件系统进行通信的协议。
|
PROCEDURE SendMail IS VARIABLES SESS: MailSession; ACTIONS MAILInitialize(OMI_MAPI_INTERFACE);
(* Now open the session. *)
(* Do other processing. *)
MAILTerminate(OMI_MAPI_INTERFACE);
返回码 | 说明 |
1 | 成功完成。 |
小于 1 | 错误。 |
MailTerminate
关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
将消息标记为已读。
FUNCTION MAILMarkMessageAsRead(VAL msgContainer: MAILContainer, VAL msgRef:MAILRef): INTEGER;
自变量名称 | 说明 |
msgContainer | 消息容器标识符 |
MsgRef | 标记为已读的消息的消息引用号 |
在有些邮件系统上,该函数还引起发送回执。不过,这只适用于先前没有读取该消息而且发送者要求返回回执的情况。
VARIABLES rc:Integer; msgContainer :MAILContainer; msgRef :MAILRef;
ACTIONS (* Open a message container *) (* Scan messages in the container and get the *) (* message reference numbers *) (* Set msgRef to the number of the message you want to mark as read *) rc := MAILMarkMessageAsRead(msgContainer, msgRef); IF (rc <> 1) THEN (* MAILMarkMessageAsRead function failed *) ELSE (* Message marked as read *) END;
(* Close message container *)
END;
返回码 | 说明 |
1 | 成功完成 |
小于 1 | 错误 |
关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
打开指定消息容器,并返回一个可以用于扫描和读取该容器的已收到消息的标识符。
FUNCTION MAILOpenMessageContainer(VAL session: MAILSession, VAL cntnrName: STRING, REF msgContainer: MAILContainer ): INTEGER;
自变量名称 | 说明 |
session | 标识会话 |
cntnrName | 要打开的消息容器的名称。名称语法取决于消息系统。通常情况下,它是实现该消息容器的数据库或队列的完整路径。 如果传送的是 $Unknown,将打开该会话的缺省消息容器。缺省消息容器有时也叫邮箱或收件箱。 |
msgContainer | 打开的消息容器标识符 |
消息系统使用已认证的会话标识符来确定用户是否有权访问指定的消息容器。
注:在 MAPI 会话中,对 cntnrName 可传送 $Unknown。
VARIABLES rc:Integer; session: MAILSession; name: String; hfile: File;
ACTIONS
(* Open a session *)
rc := MAILOpenMessageContainer(session, containername, msgcontainer); IF rc <> 1 THEN ( * Function MAILOpenMessageContainer failed *) ELSE (* Message container opened successfully *) END;
(* Close the container/session *)
END;
返回码 | 说明 |
1 | 成功完成 |
小于 1 | 错误 |
关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
用消息系统打开一个已经验证的会话。
FUNCTION MAILOpenSession(VAL pathSpec: STRING, VAL name: STRING, VAL password: STRING, VAL CharSet:INTEGER, REF session: MAILSession, VAL protocol:INTEGER): INTEGER;
自变量名称 | 说明 |
pathSpec | 消息容器数据库的路径名或服务器名。Lotus cc:Mail 和 Microsoft Mail
需要消息容器。Lotus Notes、Microsoft Exchange 和 SMTP/POP 需要服务器名。如果不需要该参数,则可以传送一个 $Unknown 值。 关于要在参数中传送的特定值,请参考邮件应用程序供应商提供的文档。 |
name | 试图注册的用户的名称。如果不需要该参数,可以传送一个 $Unknown 值。 Microsoft Windows 95 用户:请参见 MailOpenSession 语句的“注”部分。 |
password | 试图注册的用户的口令。如果不需要该参数,可以传送一个 $Unknown 值。 Microsoft Windows 95 用户:请参 MailOpenSession 语句的“注”部分。 |
CharSet | 控制计划用于所有输入字符串并返回给所有输出字符串的字符集,或控制用作 MIME 字符集参数、MIME 编码消息主题行和文本的缺省字符集的字符集。可以选择下列字符集之一:
|
session | 由该函数打开的会话标识符 |
protocol | 标识用于同邮件系统进行通信的协议。
|
提示:如果不能确定在 CharSet 自变量中传送什么值,请使用 $Unknown 来自动提供正确的值。
使用 Microsoft Exchange 概要文件名称
Microsoft Windows 98/NT 包含一个名为 Microsoft Windows Messaging 的程序。该程序起 MS-Exchange 或 MS-Mail 客户程序的作用,而且可以通过配置,将其用于传真和 Internet 邮件等其他服务。Windows Messaging 使用一个概要文件来存储用户可用的服务的有关信息。
要打开邮件会话,使用 Microsoft Windows Messaging 的 Windows 98/NT 用户应当传送作为 <name> 自变量的概要文件名。口令不是必要的。调用 MailOpenSession 时,把 $Unknown 传送给 <password> 自变量。请不要使用 MS-Exchange 或 MS-Mail 用户标识。Windows Messaging 客户程序自动从 Windows Messaging 概要文件设置获得用户标识和口令。要正常运转,Windows Messaging 概要文件应当包括口令信息。
VARIABLES rc:Integer; PathSpec: String; Name: String; Password: String; CharSet: Integer; Session: MAILSession;
ACTIONS PathSpec := 'server@company.com'(* path spec of message container database / server name *) Name := 'user@company.com';(* a valid user id *) Password := 'password'; (* password for user id *) CharSet := OMISEL_US_ASCII;(* a character set supported by your system. *) rc := MAILOpenSession(PathSpec, Name, Password, CharSet, Session, OMI_SMTP_POP_INTERFACE); IF rc <> 1 THEN (* Error in opening session *) END; END;
返回码 | 说明 |
1 | 成功完成 |
小于 1 | 错误 |
关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
该函数用于查询 TSD 脚本邮件接口中使用的一些属性的缺省值。
FUNCTION MAILQueryDefaults(VAL protocol : Integer, REF infoRec:MAILInfoRec): INTEGER;
自变量名称 | 说明 |
protocol | 用于同邮件系统进行通信的协议。当前只有 VIM 接口支持该函数。 |
infoRec | 邮件信息记录结构。该函数成功地返回值后,将用相应的值来填充该记录的各个字段。 |
只有 VIM 支持该函数。
VARIABLES inforec : MAILInfoRec; rc:Integer;
ACTIONS rc := MAILQueryDefaults(OMI_VIM_INTERFACE, inforec) IF (rc = 1) THEN (* inforec is filled with the system values *) PrintInfoRec(inforec); ELSE MsgBox('An error occurred. Return code: ' & rc); exit; END;
返回码 | 说明 |
1 | 成功完成 |
小于 1 | 错误 |
关于 TSD 脚本邮件错误代码的列表,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
确定是否已向消息容器发送新的消息。
FUNCTION MAILQueryNewMessages (VAL MsgContainer: MAILContainer, REF NewMessages:BOOLEAN): INTEGER;
注意:过于频繁地调用该函数会使基础消息系统出现严重的性能问题。为了防止出现这种问题,
有些消息系统可能要检查自调用该函数以来过了多少时间,如果离前一次对该函数的调用时间很近,将返回 FALSE。
注:建议在一分钟内,对该函数的调用不要超过一次。
自变量名称 | 说明 |
msgContainer | 消息容器标识符 |
newMessages | 返回表示新消息出现或不出现的值 |
注:只有 VIM 支持该函数。
在 VIM 中,该函数轮询消息容器,以确定自前一次调用该函数以来,是否有新消息到达。在第一次为消息容器调用该函数时,返回值显示自打开消息容器以来,是否已向它发送过任何新消息。
VARIABLES msgContainer :MAILContainer; newMessages: Boolean; rc:Integer;
ACTIONS (* Open session/container *) rc := MAILQueryNewMessages(msgContainer, newMessages); IF (rc <> 1) THEN (* MAILQueryNewMessages function failed *) ELSE IF (newMessages = TRUE) THEN (* There have been new messages since the container was opened *) ELSE (* There have been no new messages since the container was opened *) END; END; . . (* Close container/session *) . END
返回码 | 说明 |
1 | 成功完成 |
小于 1 | 错误 |
关于 TSD 脚本邮件错误代码列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开发工具包程序设计指南。
确定消息容器中未读消息的数量。
FUNCTION MAILQueryNewMessages(VAL msgContainer: MAILContainer, REF newMessages :BOOLEAN): INTEGER;
自变量名称 | 说明 |
msgContainer | 消息容器标识符。 |
newMessages | 显示该消息容器自打开以来已接收到(如果有)的新消息数量。 |
由于每个调用需要大量的处理时间,所以不应当将该函数用于轮询。
VARIABLES rc:Integer; msgContainer :MAILContainer; unreadCount: Integer; hfile: FILE;
ACTIONS
(* Open a session/container/file *)
rc := MAILQueryUnreadMailCount(msgContainer, unreadCount); IF (rc <> 1) THEN (* MAILQueryUnreadMailCount function failed *) ELSE FWrite( hfile, 'Number of unread messages : ' & unreadCount); END; (
* Close same *)
END;
返回码 | 说明 |
1 | 成功完成 |
小于 1 | 错误 |
关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
读取消息容器中的消息。
FUNCTION MAILReadMessage (VAL msgContainer:MAILContainer, VAL msgRef:MAILRef, VAL nestedLevel:INTEGER, REF msgHeader:MAILReadHeader, REF msgItems:LIST of MAILItem, REF toList, ccList, bccList:LIST of MAILName, REF nestedMsg:BOOLEAN);
自变量名称 | 说明 |
msgContainer | 消息容器标识符 |
msgRef | 要读取的消息的消息引用号 |
nestedLevel | 要返回其信息的嵌套消息级别。默认情况下,将返回顶级消息的有关信息。顶级消息的级别编号是 0。 |
msgHeader | 要读取的消息的头信息。在嵌套消息中,这与表示消息在发送历史中的特定点的消息属性相对应。 |
msgItems | 消息中所有项目的列表,包括注释部分、粘贴文件和应用程序定义的项目。请注意,对于粘贴文件,输出文件是以本地文件系统的格式写的。 |
toList | 在消息的 TO 列表中的接收人列表。 |
ccList | 在消息的 CC(抄送) 列表中的接收人列表。 |
bccList | 在消息的 BCC(暗送)列表中的接收人列表。 |
nestedMsg | 显示嵌套消息是否在 nestedLevel 参数指示的级别上出现的标志。 |
MAPI 不支持嵌套消息。MAPI 消息只能有一个注释部分,它必须是 msgItems 列表中的第一个项目。
注:关于 MAPI 不支持的头信息属性,请参阅 TSD 脚本邮件记录结构部分。
VARIABLES ...
PROCEDURE MessageReadDemo IS ...
ACTIONS . . (* Open a file/session/container *) . rc := ScanAndReadMessages(msgContainer); . . (* Close the container/session/file *) . END; FUNCTION ScanAndReadMessages(VAL msgContainer:MAILContainer ): INTEGER IS ...
ACTIONS rc := MAILScanMessages(msgContainer, OMI_REVERSE_SCAN, $Unknown, TRUE, nMessages, msgsummary); msgRef := msgsummary[$First].MsgReference; ReadMessage (msgContainer, msgRef); Exit(1); END;
FUNCTION ReadMessage(VAL msgContainer:MAILContainer, VAL msgRef:MAILRef):INTEGER IS
VARIABLES nestedmsg:BOOLEAN; msgHeader :MAILReadHeader; msgItems :LIST of MAILItem; toList: LIST of MAILName; ccList: LIST of MAILName; bccList: LIST of MAILName; rc :INTEGER;
ACTIONS rc := MAILReadMessage(msgContainer, msgRef, 0, msgHeader, msgItems, toList, ccList, bccList, nestedmsg); if (rc < 0) THEN (* Message Read Failed *) ELSE (* Message read successfully *) END; END;
返回码 | 说明 |
1 | 成功完成。 |
小于 1。 | 错误。 |
关于 TSD 脚本邮件错误代码列表和 MailItem、MailName、MailReadHeader 以及 MailSendHeader 记录结构的说明,请参见 Tivoli 服务台 6.0 开发工具包程序设计指南。
关于代码实例的其他信息,请参见安装了 Tivoli 服务台开发工具包的 EXAMPLES 目中的 msgread.kb 文件。
该函数用于释放消息引用号使用的资源。当用 MailScanMessages 函数扫描到消息时,将返回一个消息引用号列表。在对消息进行必需的处理后,将使用该调用来释放这些消息参考。释放消息引用号后,请一定不要使用它。
FUNCTION MAILReleaseMessageReference(VAL msgContainer: MAILContainer, VAL msgReference: MAILRef) : INTEGER;
自变量名称 | 说明 |
msgContainer | 消息容器标识符。 |
msgReference | 要释放的消息引用号。该参数将根据返回设置成 $Unknown。 |
建议不需要消息引用号后,就将其释放出来。这样做可以释放系统内存资源。
PROCEDURE MailReadDemo IS
VARIABLES rc, nmessages : Integer; msgContainer : MailContainer; outfile :FILE; msgSummary : LIST of MAILMsgSummary; msgHeader :MAILReadHeader; msgItems :LIST of MAILItem; toList, ccList, bccList : List of MAILName; nsflag : Boolean; loopcnt : Integer;
ACTIONS
IF (context.container = $unknown) THEN MessageBox('The Message container has not been opened. Cannot run this test'); Exit; ELSE msgContainer := context.container; END;
rc := MAILScanMessages(msgContainer, 0, $unknown, TRUE, nmessages, msgSummary);
IF (rc <> 1) THEN MessageBox('MAILScanMessages function failed, Error code is ' & rc); Exit; END;
MessageBox('MailScanMessages function successful');
(* Now read all the messages *) Fopen(outfile, 'readmsg1.txt', $create); loopcnt := 0; FOR msgSummary DO loopcnt := loopcnt + 1; rc := MAILReadMessage(msgContainer, msgSummary[$current]. msgReference, 0, msgHeader, msgItems, toList, ccList, bccList, nsflag); IF (rc <> 1) THEN MessageBox('MAILReadMessage function failed reading message number ' & loopcnt & '. Error code is ' & rc); ELSE PrintMessage(outfile, msgHeader, msgItems, toList, ccList, bccList); END; END; FClose(outfile); MessageBox('MailReadMessage function successful');
(* Release the message reference numbers *) FOR msgSummary DO MAILReleaseMessageReference(msgContainer, msgSummary[$current]. msgReference); END; END;
返回码 | 说明 |
1 | 成功完成 |
小于 1 | 错误 |
MailScanMessages
关于 TSD 脚本邮件错误代码的列表,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
删除消息容器中的消息。
FUNCTION MAILRemoveMessage(VAL msgContainer:MAILContainer, VAL msgRef:MAILRef): INTEGER;
自变量名称 | 说明 |
msgContainer | 消息容器标识符。 |
msgRef | 要删除的消息的消息引用号。 |
VARIABLES msgContainer :MAILContainer; msgRef :MAILRef; rc:Integer;
ACTIONS (* Open a message container *) (* Scan the messages in the container, get the message ref numbers *) rc := MAILRemoveMessage(msgContainer, msgRef); IF (rc <> 1) THEN (* Message could not be removed successfully *) ELSE (* Message removed successfully *) END; . . (* Close message container *) . END;
返回码 | 说明 |
1 | 成功完成 |
小于 1 | 错误 |
关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
返回消息容器中的消息的消息引用号和摘要属性。
FUNCTION MAILScanMessages(VAL msgCntnr:MAILContainer, VAL Flag:INTEGER, VAL Filter:MAILFilter, VAL summFlag:BOOLEAN, REF nMessages:INTEGER, REF msgSummary:LIST of MAILMsgSummary ): INTEGER;
自变量名称 | 说明 |
msgCntnr | 消息容器标识符。 |
Flag | 确定要扫描的消息及其排序顺序的枚举标志。这是由一个或多个下述值按位进行“与”逻辑运算创建的:
|
Filter | 指定用于扫描消息的过滤器。如果传送了 $Unknown,将不进行过滤,并对所有的消息进行扫描。(这不包括已发送的消息。) 当前要设置多于一个的过滤条件是不可能的。 |
summFlag | 指示是否要检索消息摘要属性。如果将该标志设置为 FALSE(这是缺省设置),则只检索 MailMsgSummary 记录中的消息引用号。缺省行为是只检索消息引用号。 |
nmessages | 扫描到的消息的号码。 |
msgSummary | 包含消息信息的 MailMsgSummary 记录列表。消息引用号是从该记录中获得的,并用于读取这些消息。 |
MAPI 不支持过滤器。
在 MAPI 中,只检索消息引用号,而不管标记(summFlag)的值。
KNOWLEDGEBASE MSGCONT; PRIVATE VARIABLES ... ROUTINES PROCEDURE ContainerDemo IS VARIABLES sess :MAILSession; rc :INTEGER; msgContainer :MAILContainer;
ACTIONS
(* Open a file/session/container *)
(* --- Scan Messages in the container ---- *) rc := ScanMessages(msgContainer);
(* Close container/session/file *)
END;
FUNCTION ScanMessages(VAL msgContainer:MAILContainer): INTEGER IS VARIABLES Filter : MAILFilter; summaryFlag : BOOLEAN; nMessages, rc: INTEGER; msgsummary : LIST of MAILMsgSummary;
ACTIONS rc := MAILScanMessages(msgContainer, 0, $Unknown, TRUE, nMessages, msgsummary); if (rc < 0) THEN (* Scan messages function failed *) END; (* Scan Messages function succeeded *) PrintScannedMessagesInfo(msgsummary);
END;
PROCEDURE PrintScannedMessagesInfo(VAL msgsummary:LIST of MAILMsgSummary) IS VARIABLES summrec : MAILMsgSummary; ACTIONS FOR msgsummary DO summrec := msgsummary[$current]; FWriteLn(hfile, 'MessageType : ' & summrec.Type); FWriteLn(hfile, 'Unread Mail: ' & summrec.UnreadMail); FWriteLn(hfile, 'FromName: ' & summrec.FromName); FWriteLn(hfile, 'FromAddress: ' & summrec. FromAddress); FWriteLn(hfile, 'Priority: ' & summrec.Priority); FWriteLn(hfile, 'Subject: ' & summrec.Subject); FWriteLn(hfile, ' ********* '); END; END;
返回码 | 说明 |
1 | 成功完成。 |
小于 1。 | 错误。 |
关于 TSD 脚本邮件错误代码列表和 MailFilter、MailSendHeader 以及 MailMsgSummary 记录结构的说明,请参见 Tivoli 服务台 6.0 开发工具包程序设计指南。
关于代码实例的其他信息,请参见安装了 Tivoli 服务台开发工具包的 EXAMPLES 目中的 msgread.kb 文件。
根据现存的邮件消息创建新的邮件消息。
用于转发和答复消息。
FUNCTION MAILSendDerivedMessage(VAL msgCntnr:MAILContainer, VAL msgRef:MAILRef, VAL type, flags:Integer, VAL msgHeader:MAILSendHeader, VAL toList, ccList, bccList:LIST of VAL items:LIST of MAILItem ): INTEGER;
自变量名称 | 说明 |
msgCntnr | 消息容器标识符。 |
msgRef | 衍生出新的邮件消息的消息的引用号。 |
type | 要创建的新邮件消息类型。可以是 OMISEL_FORWARD 或 OMISEL_REPLY。 |
flags | 通过“与”连在一起的样式标志的位屏蔽,指定新建邮件消息应当继承的邮件消息组件。flags 的含义取决于正在创建的邮件消息的类型。如果没有继承内容,可能会使用 $Unknown。 如果类型是 OMISEL_FORWARD,则 flags 具有下列含义: OMI_HISTORY:指定新建邮件消息应当继承的现存邮件消息的以前转发历史。如果不对此进行设置,将不能继承历史。 如果类型是 OMISEL_REPLY,则 flags 具有下列含义: OMI_INHERIT_CONTENTS:指定新建邮件消息应当继承的现存邮件消息的内容。如果不对此进行设置,将不能继承内容。有些消息服务实现程序可能只继承注释部分,而其他实现程序则同时继承注释部分和所有附件。 OMI_ALL_RECIPIENTS:指定新建邮件消息应当继承现存邮件消息的所有接收人。如果不对此进行设置,将只继承原始邮件消息的发送人。 |
msgHeader | 初始化 MailSendHeader 记录,设置正在发送的消息的头信息属性。 |
toList | 消息的主要接收人列表。 |
ccList | 在消息的 CC(抄送)列表中的接收人列表。 |
bccList | 在消息的 BCC(暗送)列表中的接收人列表。 |
items | 消息中的项目列表。 |
只有 VIM 支持该函数。
返回码 | 说明 |
1 | 成功完成。 |
小于 1 | 错误。 |
关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
创建并发送新消息。
FUNCTION MAILSendMessage(VAL session:MAILSession, VAL MsgType:STRING, VAL MsgHeader: MAILSendHeader, VAL ToList, ccList, bccList:LIST of MAILName, VAL Items: LIST of MAILItem ): INTEGER;
注意:在 MAPI 中,无法指定是否要将被发送消息记入消息日志。要防止发出消息产生磁盘空间问题,可以使用 MS-Mail 中的邮件/选项来控制消息记录。
应当以未保存发送邮件的方式设置邮件客户程序。
自变量名称 | 说明 |
session | 标识要为其创建消息的会话。 |
MsgType | 正在编写的消息类型。应当将 VIM_MAIL 或 OMI_MAIL 用于邮件消息。该类型的长度可以多达 32 个字符。 |
MsgHeader | 初始化 MailSendHeader 记录,设置要发送的消息的头信息属性。 |
toList | 消息的主要接收人列表。 |
ccList | 在消息的 CC(抄送)列表中的接收人列表。 |
bccList | 在消息的 BCC(暗送)列表中的接收人列表。 |
Items | 消息中的项目列表。 |
对于 MailSendHeader 记录中的属性和字段,消息服务提供者可能不是全都支持。如果由于这个原因,MailSendMessage 不能设置这些字段,则不会产生错误代码。只有在产生非“不支持”的头信息属性错误时,MailSendMessage 才会返回错误代码。
如果该函数不能向消息接收人之一发送消息,将返回一个错误代码。同样,如果不能将任一个消息项目成功地粘贴到消息中,该函数也会返回一个错误代码。
在 toList 和 ccList 中指定的接收人不能看到在 bccList 中指定的接收人名字。
对消息的最大主题长度或最大正文长度可能都有限制。使用 MailQueryDefaults ,可以确定主题和正文的最大长度。
可以只有一个 NOTE_PART 类的消息项目,但它必须是消息项目列表中的第一个项目。
KNOWLEDGEBASE SENDDEMO;
PROCEDURE SendDemo IS VARIABLES session: MAILSession; rc :INTEGER; ACTIONS
(* Open session *)
rc := SendMail(session);
(* Close session *)
END;
FUNCTION SendMail(VAL sess: MAILSession): INTEGER IS VARIABLES header: MAILSendHeader; Items: LIST of MAILItem; Item: MAILItem; name: MAILName; toList: LIST of MAILName; rc :INTEGER; ACTIONS (* Set the header record *) header.subject := 'Sample Message'; (* Build the message items list *) (* First item is a note part *) Item.Class := OMISEL_NOTE_PART; Item.Type := OMI_TEXT; Item.Name := 'Title for the note part'; Item.BufferType := OMI_ACTUAL_DATA; Item.BufferData := 'Hi Reader, This message is being sent by a VIM application.'; ListInsert(Items, Item, $After); (* Second item is a file attachment *) Item.Class := OMISEL_ATTACH; Item.Name := 'image.pcx'; Item.BufferType := OMI_FILE_DATA; Item.BufferData := 'D:\TMP\PAPANIM.PCX'; ListInsert(Items, Item, $After); (* Specify the recipient *) name.EntityType := OMISEL_ENTITY; name.AddressBookName := ''; name.EntityName := 'JOHN'; ListInsert(toList, name, $After); rc := MailSendMessage(sess, OMI_MAIL, header, toList, $UNKNOWN, $UNKNOWN, Items); Exit(rc); END;
返回码 | 说明 |
1 | 成功完成。 |
小于 1 | 错误。 |
下列信息,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
注:关于代码实例的详细信息,请参见安装了 Tivoli 服务台开发工具包的 EXAMPLES 目中的 senddemo.kb 文件。
释放 TSD 脚本邮件接口使用的资源。必须在终止应用程序之前调用该函数。执行该调用后,不能调用 TSD 脚本邮件接口,除非调用了 MailInitialize。
FUNCTION MAILTerminate (VAL protocol: INTEGER): INTEGER
自变量名称 | 说明 |
protocol | 标识用于同邮件系统进行通信的协议。
|
PROCEDURE SendMail IS VARIABLES SESS: MailSession; ACTIONS MAILInitialize;
(*Now open the session.*)
(* Do other processing. *)
MAILTerminate;
返回码 | 说明 |
1 | 成功完成。 |
小于 1 | 错误。 |
MailInitialize
关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
获取并验证消息的数字签名。
FUNCTION MAILVerifyMessageSignature(VAL msgContainer: MAILContainer, VAL msgRef:MAILRef, REF signer:MAILName, REF certifier:MAILName ): INTEGER;
自变量名称 | 说明 |
msgContainer | 消息容器标识符 |
msgRef | 消息的消息的引用号。 |
signer | 签名人的身份 |
certifier | 证明人的身份 |
只有 VIM 支持该函数。消息签名的含义(例如,验证的可靠性)随消息系统的实现程序而定。
VARIABLES rc:Integer; msgContainer :MAILContainer; msgRef :MAILRef; signer: String; certifier: String; hfile: FILE; ACTIONS (* Open a message container, scan the messages and set msgRef to the reference number of the message with the needed signature information *) . rc:= MAILVerifyMessageSignature(msgContainer, msgRef, signer, certifier); IF rc <> 1 THEN ELSE FWrite (hfile, 'The signer of the message is ' & signer.EntityName); FWrite (hfile, 'The certifier of the message is ' & certifier.EntityName); END . . . END;
返回码 | 说明 |
1 | 成功完成。 |
小于 1 | 错误。 |
关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南。
Tivoli 服务台 6.0 开发工具包脚本语言参考