activiti5之邮件任务
原文:http://zhc3191012.blog.163.com/blog/static/1855533762013825101856533/activiti强化了业务流程,支持了自动邮件任务,它可以发送邮件给一个或多个参与者, 包括支持cc, bcc, HTML内容等等。 注意邮件任务不是BPMN 2.0规范定义的官方任务。 (它也没有对应的图标)。 因此,activiti中邮件任务是用专门的服务任务实现的。
邮件服务器配置
activiti引擎要通过支持SMTP功能的外部邮件服务器发送邮件。 为了实际发送邮件,引擎穾知道如何访问邮件服务器。 下面的配置可以设置到activiti.cfg.xml配置文件中:
Table 1. 邮件服务器配置
属性是否必须描述
mailServerHost否邮件服务器的主机名(比如:mail.mycorp.com)。默认为
localhost
mailServerPort是,如果没有使用默认端口邮件服务器上的SMTP传输端口。默认为25
mailServerDefaultFrom否如果用户没有指定发送邮件的邮件地址,默认设置的发送者的邮件地址。默认为activiti@activiti.org
mailServerUsername如果服务器需要一些邮件服务器需要认证才能发送邮件。默认不设置。
mailServerPassword如果服务器需要一些邮件服务器需要认证才能发送邮件。默认不设置。
mailServerUseSSL如果服务器需要一些邮件服务器需要ssl交互。默认为false。
定义一个邮件任务
邮件任务是一个专用的服务任务, 这个服务任务的type设置为'mail'。<serviceTask id="sendMail" activiti:type="mail">
邮件任务是通过属性注入进行配置的。 所有这些属性都可以使用EL表达式,可以在流程执行中解析。 下面的属性都可以设置:
Table 2. 邮件服务器配置
属性是否必须描述
to是邮件的接受者。可以使用逗号分隔多个接受者
from否邮件发送者的地址。如果不提供,会使用默认配置的地址。
subject否邮件的主题
cc否邮件抄送人。可以使用逗号分隔多个接收者
bcc否邮件暗送人。可以使用逗号分隔多个接收者
charset否可以修改邮件的字符集,对很多非英语语言是必须设置的。
html否作为邮件内容的HTML。
text否邮件的内容,在需要使用原始文字(非富文本)的邮件时使用。 可以与html一起使用,对于不支持富客户端的邮件客户端。 客户端会降级到仅显示文本的方式。
使用实例
下面的XML演示了使用邮件任务的例子。<serviceTask id="sendMail" activiti:type="mail">
<extensionElements>
<activiti:field name="from" stringValue="order-shipping@thecompany.com" />
<activiti:field name="to" expression="${recipient}" />
<activiti:field name="subject" expression="Your order ${orderId} has been shipped" />
<activiti:field name="html">
<activiti:expression>
<!
<html>
<body>
Hello ${male ? 'Mr.' : 'Mrs.' } ${recipientName},<br/><br/>
As of ${now}, your order has been <b>processed and shipped</b>.<br/><br/>
Kind regards,<br/>
TheCompany.
</body>
</html>
]]>
</activiti:expression>
</activiti:field>
</extensionElements>
</serviceTask>
结果如下:
http://www.mossle.com/docs/activiti/images/email.task.result.png
页:
[1]