原文:http://zhc3191012.blog.163.com/b ... 762013825101856533/
activiti强化了业务流程,支持了自动邮件任务,它可以发送邮件给一个或多个参与者, 包括支持cc, bcc, HTML内容等等。 注意邮件任务不是BPMN 2.0规范定义的官方任务。 (它也没有对应的图标)。 因此,activiti中邮件任务是用专门的服务任务实现的。
邮件服务器配置
activiti引擎要通过支持SMTP功能的外部邮件服务器发送邮件。 为了实际发送邮件,引擎穾知道如何访问邮件服务器。 下面的配置可以设置到activiti.cfg.xml配置文件中:
Table 1. 邮件服务器配置
[td]属性 | 是否必须 | 描述 | 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. 邮件服务器配置
[td]属性 | 是否必须 | 描述 | 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>
<![CDATA[
<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>
结果如下:
|