第一步:
建立队列管理器。可以在MQ管理器栏内建立如下图
或者也可在命令行MQ控制台下建立队列管理器命令如下:crtmqm -lc -lf 2560 -lp 5 -ls 3 MAILTEST
第二步:建立MQ输入队列
可以在界面上建立MQ队列如下图
或者也可在命令行MQ控制台下DEFINE QLOCAL(EMAILMQTEST) MAXDEPTH(5000) DEFPSIST(NO) DEFBIND(NOTFIXED) replace | runmqsc EMAILTEST
第三步:新建立一个代理Broker如下图:
或者也可在命令行MQ控制台下输入:
mqsicreatebroker EMAIL -i 计算机的本机的用户名 -a 计算机本机的密码 -q EMAILTEST
第四步:建立相关消息流如下图:
其中 MQ输入node队列名称为EMAILMQTEST,输入消息解析中解析域为XMLNS : 对于 XML 消息(namespace aware)如下图:
Compute node中ESQL代码为:
CREATE COMPUTE MODULE MBForEmail_Compute
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
-- Add recipient information
--SET OutputRoot.EmailOutputHeader.To = '[email protected]';
SET OutputRoot.EmailOutputHeader.To = InputRoot.XMLNS.test.mailto;
--Add Cc information
--SET OutputRoot.EmailOutputHeader.Cc = '[email protected]';
SET OutputRoot.EmailOutputHeader.Cc = InputRoot.XMLNS.test.mailcc;
--Add Bcc information It could be null
SET OutputRoot.EmailOutputHeader.Bcc = InputRoot.XMLNS.test.mailBcc;
-- Add sender information to mail
--SET OutputRoot.EmailOutputHeader.From = '[email protected]';
SET OutputRoot.EmailOutputHeader.From = InputRoot.XMLNS.test.sender;
SET OutputRoot.EmailOutputHeader."Reply-To" = '';
-- Add subject to Email
SET OutputRoot.EmailOutputHeader.Subject = InputRoot.XMLNS.test.Subject;
-- Add SMTP server information to the LocalEnvironment
SET OutputLocalEnvironment.Destination.Email.SMTPServer ='smtp.126.com:25';
-- Create a new message body, which will be sent as the main text of the email.
SET OutputRoot.BLOB.BLOB = CAST(InputRoot.XMLNS.test.content AS BLOB CCSID 1208);
RETURN TRUE;
END;
END MODULE;
EMAIL输出 node 安全标识设置为MyIdentity
基本设置为发送者的Email服务器设置端口默认为25
第5步:
在broker上输入命令:
Mqsisetdbparms borker(例如刚建立的broker EMAIL ) -n smtp::MyIdentity -u 发送者EMAIL的 username -p 发送者的password
第6步:
将消息放入以下测试如下图:
<test><mailto>[email protected]</mailto><mailcc>[email protected]</mailcc><mailBcc></mailBcc><sender>[email protected]</sender><Subject>thisisaEmailSubjecttitle</Subject><content>youcanwritealetterinthisoryoucanfillwordinhere</content></test>
第7步:
查看输出结果是否成功即相应的邮箱是否收到邮件