Tivoli 服务台 6.0 开发工具包脚本语言参考

TSD 脚本邮件函数

返回主页


MailAddressBookEntries

说明

返回通讯录中所有条目的列表。

语法

FUNCTION MAILAddressBookEntries(VAL session: MAIL Session,
                                VAL addrBookName: STRING,
                                REF addrBookEntries: LIST of
                                MAILABEntry): INTEGER;

自变量说明

自变量名称 说明
session 邮件会话标识符。
addrBookName 要打开的通讯录名称。可以将下列符号名用作打开标准通讯录的快捷方式:
  • OMI_PUBLIC:用于打开所包含的条目是大家都可以访问的缺省通讯录(即特定位置的所有用户都可以对其进行访问)。
  • OMI_PRIVATE:用于打开所包含的条目是只让个人访问的缺省通讯录(即只有当前注册用户才可以访问)。
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 开工具包程序设计指南


MailAddressBooks

说明

返回当前会话可用的通讯录名称列表。

语法

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 开工具包程序设计指南


MailCloseMessageContainer

说明

关闭消息容器。

语法

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 开工具包程序设计指南


MailCloseSession

说明

关闭会话。

语法

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 开工具包程序设计指南


MailGetEntityName

说明

返回用户名或与会话参数中指定的会话相关联的消息应用程序的名称。

语法

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 开工具包程序设计指南


MailGetLastErrorText

说明

返回与上一次失败操作有关的错误文本。

语法

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 开工具包程序设计指南


MailInitialize

说明

初始化 TSD 脚本邮件接口。它是使用任何 TSD 脚本邮件接口服务前应当首先调用的函数。

语法

MAILInitialize (VAL protocol:INTEGER): INTEGER

自变量说明

自变量名称 说明
protocol 标识用于同邮件系统进行通信的协议。
  • OMI_VIM_INTERFACE: 用于 VIM 协议
  • OMI_ MAPI_INTERFACE: 用于 MAPI 协议

实例

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 开工具包程序设计指南


MailMarkMessageAsRead

说明

将消息标记为已读。

语法

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 开工具包程序设计指南


MailOpenMessageContainer

说明

打开指定消息容器,并返回一个可以用于扫描和读取该容器的已收到消息的标识符。

语法

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 开工具包程序设计指南


MailOpenSession

说明

用消息系统打开一个已经验证的会话。

语法

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 编码消息主题行和文本的缺省字符集的字符集。可以选择下列字符集之一:
  • OMISEL_CP850:用 850 代码页表示和返回的文本和字符串数据。这对基于 DOS 和 OS/2 的实现程序总是有效的。
  • OMISEL_CP1252:用 1252 代码页(ANSI)表示和返回的文本和字符串数据。这对基于 Windows 的实现程序总是有效的。
  • OMISEL_CP437:用 437 代码页(IBM PC)表示和返回的文本和字符串数据。这对基于 DOS 的实现程序总是有效的。
  • OMISEL_LMBCS:用 Lotus 多字节字符集表示和返回的文本和字符串数据。
  • OMISEL_UNICODE:用 Unicode 表示和返回的文本和字符串数据。
  • OMISEL_ISO_2022_JP:参数设置为 ISO-2022-JP 的缺省 MIME 字符集。
  • OMISEL_ISO_2022_JP_2:参数设置为 ISO-2022-JP_2 的缺省 MIME 字符集。
  • OMISEL_ISO_8859_1:参数设置为 OMISEL_ISO_8859_1(拉丁语)的缺省 MIME 字符集。
  • OMISEL_US_ASCII:参数设置为 US ASCII (ANSI X3.4)的缺省 MIME 字符集。
session 由该函数打开的会话标识符
protocol 标识用于同邮件系统进行通信的协议。
  • OMI_VIM_INTERFACE:与 VIM 协议一起使用
  • OMI_ MAPI_INTERFACE:与 MAPI 协议一起使用
  • OMI_ SMTP_POP_INTERFACE:与 SMTP/POP 协议一起使用

提示:如果不能确定在 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 开工具包程序设计指南


MailQueryDefaults

说明

该函数用于查询 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 开工具包程序设计指南


MailQueryNewMessages

说明

确定是否已向消息容器发送新的消息。

语法

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 开发工具包程序设计指南


MailQueryUnreadMailCount

说明

确定消息容器中未读消息的数量。

语法

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 开工具包程序设计指南


MailReadMessage

说明

读取消息容器中的消息。

语法

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 脚本邮件错误代码列表和 MailItemMailNameMailReadHeader 以及 MailSendHeader 记录结构的说明,请参见 Tivoli 服务台 6.0 开发工具包程序设计指南

关于代码实例的其他信息,请参见安装了 Tivoli 服务台开发工具包的 EXAMPLES 目中的 msgread.kb 文件。


MailReleaseMessageReference

说明

该函数用于释放消息引用号使用的资源。当用 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 开工具包程序设计指南


MailRemoveMessage

说明

删除消息容器中的消息。

语法

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 开工具包程序设计指南


MailScanMessages

说明

返回消息容器中的消息的消息引用号和摘要属性。

语法

 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 确定要扫描的消息及其排序顺序的枚举标志。这是由一个或多个下述值按位进行“与”逻辑运算创建的:
  • OMI_UNREADONLY:只返回未读消息。消息是默认地返回的。
  • OMI_REVERSE_SCAN:按倒序枚举消息(从最后一个进/从第一个出)。
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 脚本邮件错误代码列表和 MailFilterMailSendHeader 以及 MailMsgSummary 记录结构的说明,请参见 Tivoli 服务台 6.0 开发工具包程序设计指南

关于代码实例的其他信息,请参见安装了 Tivoli 服务台开发工具包的 EXAMPLES 目中的 msgread.kb 文件。


MailSendDerivedMessage

说明

根据现存的邮件消息创建新的邮件消息。

用于转发和答复消息。

语法

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 开工具包程序设计指南


MailSendMessage

说明

创建并发送新消息。

语法

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 消息中的项目列表。

注释(VIM)

对于 MailSendHeader 记录中的属性和字段,消息服务提供者可能不是全都支持。如果由于这个原因,MailSendMessage 不能设置这些字段,则不会产生错误代码。只有在产生非“不支持”的头信息属性错误时,MailSendMessage 才会返回错误代码。

如果该函数不能向消息接收人之一发送消息,将返回一个错误代码。同样,如果不能将任一个消息项目成功地粘贴到消息中,该函数也会返回一个错误代码。

toListccList 中指定的接收人不能看到在 bccList 中指定的接收人名字。

对消息的最大主题长度或最大正文长度可能都有限制。使用 MailQueryDefaults ,可以确定主题和正文的最大长度。

注释(MAPI)

可以只有一个 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 文件。


MailTerminate

说明

释放 TSD 脚本邮件接口使用的资源。必须在终止应用程序之前调用该函数。执行该调用后,不能调用 TSD 脚本邮件接口,除非调用了 MailInitialize

语法

FUNCTION MAILTerminate (VAL protocol: INTEGER): INTEGER

自变量说明

自变量名称 说明
protocol 标识用于同邮件系统进行通信的协议。
  • OMI_VIM_INTERFACE:与 VIM 协议一起使用
  • OMI_ MAPI_INTERFACE:与 MAPI 协议一起使用

实例

PROCEDURE SendMail IS
VARIABLES
 SESS: MailSession;
ACTIONS
 MAILInitialize;
 (*Now open the session.*)
 (* Do other processing. *)
MAILTerminate;

返回码

返回码 说明
1 成功完成。
小于 1 错误。

另见

MailInitialize

关于 TSD 脚本邮件错误代码的列表和 MailSendHeader 记录的说明,请参见 Tivoli 服务台 6.0 开工具包程序设计指南


MailVerifyMessageSignature

说明

获取并验证消息的数字签名。

语法

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 开发工具包脚本语言参考

返回主页

版权所有