【弄nèng - Activiti6】Activiti6入门篇(九)—— 邮件任务
文章目录
- 1. 邮件任务
- 1.1 流程设计
- 1.2 引入pom
- 1.3 邮件配置
- 1.4 测试类
- 1.5 运行
- 1.5.1 启动任务
- 源码地址
- 项目推荐
Activiti中邮件任务一般用于发送邮件。
*后台服务基于Springboot2 + Activiti6,整合文章请参考:https://blog.csdn.net/yy756127197/article/details/101211510 不需要流程设计器就排除3,4步骤 *
1. 邮件任务
1.1 流程设计
设置
说明
charset:设置编码格式
流程图
流程文件bpmn
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/processdef"><process id="mailTask" name="邮件任务" isExecutable="true"><documentation>script</documentation><startEvent id="startEvent1"></startEvent><sequenceFlow id="sid-8FB9551F-B3A0-4F90-A6FF-EB18A7401952" sourceRef="startEvent1" targetRef="sid-3F1C24D4-C145-4E4F-932E-B532BA1ECB0A"></sequenceFlow><endEvent id="sid-C6D808B0-9D9E-4A64-8AD0-C65E440DD29A"></endEvent><serviceTask id="sid-3F1C24D4-C145-4E4F-932E-B532BA1ECB0A" name="发送邮件" activiti:type="mail"><extensionElements><activiti:field name="to"><activiti:string><![CDATA[gaha_hero@163.com]]></activiti:string></activiti:field><activiti:field name="from"><activiti:string><![CDATA[756127197@qq.com]]></activiti:string></activiti:field><activiti:field name="subject"><activiti:string><![CDATA[Activiti测试邮件]]></activiti:string></activiti:field><activiti:field name="text"><activiti:string><![CDATA[测试邮件测试邮件测试邮件测试邮件]]></activiti:string></activiti:field></extensionElements></serviceTask><sequenceFlow id="sid-E85675E5-0A4F-4210-B667-A8F7A7BAFB5C" sourceRef="sid-3F1C24D4-C145-4E4F-932E-B532BA1ECB0A" targetRef="sid-C6D808B0-9D9E-4A64-8AD0-C65E440DD29A"></sequenceFlow></process><bpmndi:BPMNDiagram id="BPMNDiagram_mailTask"><bpmndi:BPMNPlane bpmnElement="mailTask" id="BPMNPlane_mailTask"><bpmndi:BPMNShape bpmnElement="startEvent1" id="BPMNShape_startEvent1"><omgdc:Bounds height="30.0" width="30.0" x="180.0" y="160.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-C6D808B0-9D9E-4A64-8AD0-C65E440DD29A" id="BPMNShape_sid-C6D808B0-9D9E-4A64-8AD0-C65E440DD29A"><omgdc:Bounds height="28.0" width="28.0" x="495.0" y="161.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-3F1C24D4-C145-4E4F-932E-B532BA1ECB0A" id="BPMNShape_sid-3F1C24D4-C145-4E4F-932E-B532BA1ECB0A"><omgdc:Bounds height="80.0" width="100.0" x="300.0" y="135.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNEdge bpmnElement="sid-8FB9551F-B3A0-4F90-A6FF-EB18A7401952" id="BPMNEdge_sid-8FB9551F-B3A0-4F90-A6FF-EB18A7401952"><omgdi:waypoint x="210.0" y="175.0"></omgdi:waypoint><omgdi:waypoint x="300.0" y="175.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sid-E85675E5-0A4F-4210-B667-A8F7A7BAFB5C" id="BPMNEdge_sid-E85675E5-0A4F-4210-B667-A8F7A7BAFB5C"><omgdi:waypoint x="400.0" y="175.0"></omgdi:waypoint><omgdi:waypoint x="495.0" y="175.0"></omgdi:waypoint></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</definitions>
1.2 引入pom
<!-- 邮件--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
1.3 邮件配置
# activiti配置activiti:database-schema-update: true# 记录级别,默认audithistory-level: full# 自动部署验证设置:true-开启(默认)、false-关闭check-process-definitions: false# 默认流程定义文件存放目录process-definition-location-prefix: classpath:/processes/# 邮件mail-server-host: smtp.qq.commail-server-port: 465mail-server-default-from: 756127197@qq.commail-server-user-name: 756127197@qq.commail-server-password: (你的邮箱授权码)mail-server-use-ssl: true
我是用的是QQ邮件,要使用QQ邮箱需要以下几步
- 开启SMTP服务
- 获取授权码
1.4 测试类
MailTaskTest .java
import com.it.cloud.modules.activiti.service.IActReModelService;
import org.activiti.engine.HistoryService;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;/*** 邮件任务测试*/
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
public class MailTaskTest {@Autowiredprivate IActReModelService actReModelService;@Autowiredprivate RuntimeService runtimeService;@Autowiredprivate RepositoryService repositoryService;@Autowiredprivate TaskService taskService;@Autowiredprivate HistoryService historyService;/*** 部署流程定义*/@Testpublic void deploy() {Deployment deployment = repositoryService.createDeployment() // 创建部署.addClasspathResource("diagrams/mailTask.bpmn20.xml") // 加载流程资源文件.name("mailTask流程") // 流程名称.deploy(); // 部署System.out.println("流程部署ID:" + deployment.getId());System.out.println("流程部署Name:" + deployment.getName());}/*** 启动流程实例*/@Testpublic void start() {ProcessInstance pi = runtimeService.startProcessInstanceByKey("mailTask"); // 流程定义表的KEY字段值System.out.println("流程实例ID:" + pi.getId());System.out.println("流程定义ID:" + pi.getProcessDefinitionId());}}
1.5 运行
运行deploy()
1.5.1 启动任务
运行start()
效果:
源码地址
IT-CLOUD-ACTIVITI6
开源项目,持续更新中,喜欢请 Star~
项目推荐
IT-CLOUD :IT服务管理平台,集成基础服务,中间件服务,监控告警服务等。
开源项目,持续更新中,喜欢请 Star~
【弄nèng - Activiti6】Activiti6入门篇(九)—— 邮件任务相关推荐
- 【弄nèng - Skywalking】入门篇(二)—— Skywalking集群部署
文章目录 一. 安装OAP 1.1 前置 1.2 下载 1.3 修改配置application.yml 1.4 高级部署 1.5 webapp配置 1.6 启动 二. 使用Agent 2.1 修改配置 ...
- 【弄nèng - Grafana】入门篇(十)—— Dashboard默认时间范围和刷新时间设置
文章目录 1. Dashboard通用设置 General 2. 修改Dashboard默认时间范围 3. 修改某个Panel时间 项目推荐 Dashboard修改默认时间范围 1. Dashboar ...
- 算法入门篇九 暴力递归
牛客网 左程云老师的算法入门课 暴力递归 原则 汉诺塔问题 问题 打印n层汉诺塔从左边移动到最右边的过程 思想 一共六个过程,左到右.左到中,中到左,中到右,右到左,右到中,互相嵌套使用 左到右 将 ...
- 【弄nèng - SpringCloud】应用篇 —— 整合Zipkin【Finchley版】
文章目录 1. Zipkin简介 2.术语 N. 插一杠子 N.1 下载Zipkin-server jar N.2 启动jar 3. 使用 3.1 it-zipkin-server 3.2 gatew ...
- 运动控制器编程_快速入门 | 篇二十一:运动控制器ZHMI组态编程简介一
点击上方"正运动小助手",随时关注新动态! 运动控制器ZHMI组态编程简介一 今天我们来学习一下,运动控制器的ZHMI组态编程简介.本文主要从产品概述.控制器连接触摸屏使用.HM ...
- 快速入门 | 篇十三:正运动技术运动控制器ZDevelop 编程软件的使用
之前正运动技术与大家分享了,运动控制器的固件升级.ZBasic程序开发.ZPLC程序开发.与触摸屏通讯和输入/输出IO的应用.运动控制器数据与存储的应用.运动控制器ZCAN.EtherCAT总线的使用 ...
- mac x99算法 java_黑苹果从入门到精通 篇九:从Clover转向OpenCore的X99 iMac Pro(一)...
黑苹果从入门到精通 篇九:从Clover转向OpenCore的X99 iMac Pro(一) 2019-12-27 17:01:17 196点赞 2085收藏 138评论 追加修改(2019-12-2 ...
- EGE基础入门篇(九):双缓冲与手动渲染
EGE专栏:EGE专栏 上一篇:EGE基础入门篇(八):清屏与重绘 下一篇: 文章目录 一.双缓冲机制 1. 单缓冲绘图 1.1 单缓冲绘图的缺点 1.2 系统读取帧缓冲 2. 双缓冲绘图 2.1 双 ...
- spring boot(一):入门篇
构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...
- Python:Excel自动化实践入门篇 甲【留言点赞领图书门票】
*以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s?__biz=MzUxMTgxMzExNQ==&mid=22 ...
最新文章
- PAT甲级1115 Counting Nodes in a BST (30分):[C++题解] 递归建二叉搜索树、dfs求一层结点数量
- Fabricjs一个简单强大的Canvas绘图库快速入门
- jboss eap 6.2+ 版本中 加密datasource密码等敏感信息
- 电子工程师,学会阅读Datasheet很重要!
- 1063. 计算谱半径(20)
- 大型网站的Google排名策略
- c 语言 二进制转换为十进制,用c/c++语言将二进制转换为十进制,最好有例子。...
- laravel表单验证
- OpenEMR登录模块SQL注入分析
- java的main是主线程吗_main函数是主线程吗
- WINDOWS游戏编程大师技巧-常见编绎连接错误FAQ
- 怎样用springboot开发cs_springboot 系列 springboot 初探
- 在linux中查看服务,linux中怎么查看服务状态
- eclipse运行不了jsp代码,错误代码:couldn't create the java virtual machine. a fatal exception has occurred.
- 电脑耳机有声外放无声的解决方法
- HR套招的十大经典面试问题
- 深度linux12.12安装,深度Linux 12.12 Alpha发布
- rate-limiting
- 如何防止服务器被攻击?
- 用不可逆算法MD5进行加密后,如何进行登录验证
热门文章
- docker国内镜像仓库地址
- 【考研·数据结构】408真题 (2013年42题) 的两种解法】
- 网页规划与设计HTML5+CSS大作业——响应式个人简历介绍(5页)-模板下载
- Android应用内设置多语言
- android多语言配置,Android国际化(多语言)实现,支持8.0
- Excel如何批量给混合文本中的数字标记不同颜色
- android+高仿+日历,android高仿钉钉和小米的自定义日历控件(支持阴历和阳历,左右无限翻页viewpager)...
- 一文带你走进seo,新手必须了解的seo知识你知道吗
- 创业之困:恐龙必定会从地球上消亡
- 详解贝叶斯学派与频率学派的区别和联系