Flowable发邮件,近期研究了一下flowable发邮件的功能,在这里分享一下flowable邮件任务的功能。本文重点分析一下内容:
1.文档中定义如何发邮件,包括邮件的内容,收件人、主题,抄送等。
2.流程引擎配置类中定义发件人的信息。
3.测试邮件是否可以发送。
1.定义流程文档
首先,我们定义一个可以发邮件的文档,文档图如下所示:
我们重点看一下邮件服务任务的配置,注意邮件任务本质上也是一个serviceTask,上图中的邮件任务详细配置如下图所示:
这些配置的属性最终在xml文档的表示如下所示:
<serviceTask id="mailtask1" name="Mail Task" activiti:type="mail">
<extensionElements>
<activiti:field name="to">
<activiti:string><![CDATA[3152981878@qq.com]]></activiti:string>
</activiti:field>
<activiti:field name="subject">
<activiti:expression><![CDATA[邮件标题]]></activiti:expression>
</activiti:field>
<activiti:field name="charset">
<activiti:string><![CDATA[UTF-8]]></activiti:string>
</activiti:field>
<activiti:field name="html">
<activiti:string><![CDATA[分享牛Flowable教程开始录制了。]]></activiti:string>
</activiti:field>
</extensionElements>
</serviceTask>
2.邮件服务配置信息
属性 | 是否必须 | 描述 |
to | 是 | 邮件的接受者。可以使用逗号分隔多个接受者 |
from | 否 | 邮件发送者的地址。如果不提供,会使用默认配置的地址。 |
subject | 否 | 邮件的主题 |
cc | 否 | 邮件抄送人。可以使用逗号分隔多个接收者 |
bcc | 否 | 邮件暗送人。可以使用逗号分隔多个接收者 |
charset | 否 | 可以修改邮件的字符集,对很多非英语语言是必须设置的。 |
html | 否 | 作为邮件内容的HTML。 |
text | 否 | 邮件的内容,在需要使用原始文字(非富文本)的邮件时使用。 可以与html一起使用,对于不支持富客户端的邮件客户端。 客户端会降级到仅显示文本的方式。 |
3.流程文档的配置
上面,我们绘制了文档并定义了收件人的一些信息,但是这个邮件是谁发的呢?换言之发件人是谁?这些信息我们需要进行配置,具体配置信息如下:
<bean id="processEngineConfiguration"
class="org.flowable.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="dataSource" ref="dataSource" />
<property name="databaseSchemaUpdate" value="true" />
<property name="mailServerHost" value="smtp.qq.com" />
<property name="mailServerPort" value="587"/>
<property name="mailServerDefaultFrom" value="1515308@qq.com" />
<property name="mailServerUsername" value="1515308@qq.com" />
<property name="mailServerPassword" value="分享牛" />
<property name="mailServerUseSSL" value="true" />
</bean>
mailServerHost:发邮件的主机地址。
mailServerPort:发邮件的主机暴露的端口。
mailServerDefaultFrom:默认的发件人。
mailServerUsername:发件人的邮箱用户名。
mailServerPassword:POP3/SMTP服务的授权码(注意一点,这里并不是邮箱的密码)。
4.部署上述文档并进行测试
其中启动流程实例的相关代码如下所示:
@Test
public void start1() {
Authentication.setAuthenticatedUserId("分享牛");
runtimeService.startProcessInstanceByKey("myProcess");
}
不出意外的话,发送的邮件截图信息如下:
至此,邮件任务使用以及测试通过。
转载请注明:分享牛 » Flowable发邮件