原文: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> 
                      结果如下:  
  
 |