资讯专栏INFORMATION COLUMN

Camunda: 把邮件扩展集成到业务过程管理中

leo108 / 1860人阅读

摘要:在业务过程系统中集成邮件服务功能发送邮件收取邮件删除邮件收到邮件时执行操作安装要求对于嵌入式过程引擎添加作为应用程序依赖如果使用需要添加如下依赖到文件中对于共享过程引擎添加到服务器的目录中比如还要保证包括下面的依赖

https://github.com/camunda/ca...

在业务过程系统中集成邮件服务.

功能

发送邮件

收取邮件

删除邮件

收到邮件时, 执行操作

安装

要求

Camunda BPM >= 7.50

Java 8

对于嵌入式过程引擎

添加 camunda-bpm-mail-core 作为应用程序依赖. 如果使用Maven, 需要添加如下依赖到 pom.xml 文件中:


  org.camunda.bpm.extension
  camunda-bpm-mail-core
  1.1.0
对于共享过程引擎

添加 camunda-bpm-mail-core-1.1.0.jar 到服务器的 lib 目录中, 比如 apache-tomcat-8.0.24lib. 还要保证包括下面的依赖:

camunda-connect-core >= 1.0.3

JavaMail >= 1.5.5

slf4j-api >= 1.7.21

如果使用 Wildfly, 参考这个特殊说明

如何使用

该扩展构建与 Connectors API 基础上, 并且提供了一些用于连接到邮件服务器的连接器. 连接可以作为一个服务任务实现用于一个过程当中, 并且通过ID进行引用. 然后使用 Camunda Modeler 来配置:


  
    
      mail-send
      
    
  

查看 连接器用户指南 以了解如何配置过程引擎来使用连接器

发送邮件

连接器ID: mail-send

输入参数 类型 是否要求
from String NO(从配置读取)
fromAlias String NO(从配置读取)
to String Yes
cc String NO
bcc String No
subject String Yes
text String No
html String No
fileNames 字符串列表 (文件路径) Yes

邮件内容可以使HTML或者纯文本, 并且可以通过模板生成(比如, 使用 FreeMarkeer 模板, 可以参考 这个例子)

收取邮件

输入参数 类型 是否要求
folder String(比如: "Inbox" NO(从配置读取)
download-attachements Boolean NO(从配置读取)
输出参数 类型
mails Mail 类型列表

如果 download-attachementstrue, 那么存储附件到配置中指定的位置. 存储附件的路径可以通过 Mail 的 Attachment 中获取

删除邮件
输入参数 类型 是否要求
folder String(例如: "Inbox") NO(从配置读取)
mails Mail 列表 NO
messageIds 字符串列表 NO
messageNumbers 整数列表 NO

mails, messageIdsmessageNumbers 必须设置.

收取邮件后的自动化操作

该扩展使用 MailNotificationService 来对收取的邮件做响应操作(例如, 启动一个过程示例, 或关联一个消息) 你可以注册处理器/消费者, 当收到一个新的邮件时, 来处理这个邮件. 下面给出一个Java的实际代码例子:

MailNotificationService notificationService = new MailNotificationService(configuration);

notificationService.registerMailHandler(mail -> {
  runtimeService.startProcessInstanceByKey("process",
    Variables.createVariables().putValue("mail", mail));
});

notificationService.start();

// ...

notificationService.stop();

如果使用了一个邮件处理器, 并且在配置中启用了 downloadAttachments, 那么在调用对应的处理器的时候首先存储附件. 另外, 还可以通过调用 Mail.downloadAttachments() 触发手动下载.

如何配置

默认情况, 扩展会从CLASSPATH中查找一个名为mail-config.properties的配置文件. 你可以使用环境变量 MAIL_CONFIG 来修改查找路径. 如果你想在CLASSPATH中查找一个文件, 使用classpath 前缀. (例如: classpath:/my-application.config)

下面是一个配置示例:

# send mails via SMTP
mail.transport.protocol=smtp

mail.smtp.host=smtp.gmail.com
mail.smtp.port=465
mail.smtp.auth=true
mail.smtp.ssl.enable=true
mail.smtp.socketFactory.port=465
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

# poll mails via IMAPS
mail.store.protocol=imaps

mail.imaps.host=imap.gmail.com
mail.imaps.port=993
mail.imaps.timeout=10000

# additional config
mail.poll.folder=INBOX
mail.sender=USER@google.com
mail.sender.alias=User Inc

mail.attachment.download=true
mail.attachment.path=attachments

# credentials
mail.user=USER@gmail.com
mail.password=PASSWORD

可以在 extension/core/configs 找到一些配置示例. 如果使用没有配置的邮件供应商, 你也可以添加自己的. 可以通过 集成测试 来校验你的配置.

例子

下面的例子展示了如何使用连接器和服务.

披萨订单

收取邮件

发送纯文本邮件

删除邮件

打印服务

使用 MailNotificationService

发送带附件的邮件

任务分配邮件例子

常见问题

JavaMail 项目文档

Oracle JavaMail 常见问题

关于使用 Gmail 发送邮件的问题

注意 javamail 的版本, 最好用比较新的

参考资料

把邮件服务集成到业务过程中

当一个用户任务被分配给具体的人, 或一个组时如何发送一个通知邮件

如何通过 Camunda 发送邮件

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/70054.html

相关文章

  • Rancher:2016的答卷

    摘要:降低对外包服务团队的依赖,提高业务的敏捷性研发部门实现测试环境自动创建配置和邮件通知,满足持续集成和持续交付的要求,可自动并快速获得基础架构应用配置和代码等各个关键环节的反馈。 2016年对Rancher Labs而言是太重要也太精彩的一年 Rancher 1.0,Rancher 1.1,Rancher 1.2三次重大的版本发布与更新Rancher的累积下载量已达1600万 在中国海航...

    iKcamp 评论0 收藏0
  • 用友云微服务架构下配置文件管理利器:配置

    摘要:而且,用友云配置中心以服务的方式提供统一的管理界面,结合用友云的认证中心可以提供可靠的安全保障。 微服务架构是这几年IT领域的一个高频词汇,越来越多的项目和应用正在以微服务的思想进行重构。相比于单体应用和SOA架构,微服务优势也逐渐凸显,被广大架构师和技术人员引入和推崇。当然,单体应用、SOA、微服务等各有优势和不足。单体架构在早期的企业内部信息化或者搭建中小型项目时很常见,简单说就是...

    jayce 评论0 收藏0
  • 分布式任务调度平台的自动化部署

    摘要:分布式任务调度平台,美团点评员工许雪里开发,其核心设计目标是开发迅速学习简单轻量级易扩展。源码地址二本文简介主要是利用成熟的部署工具,结合开源的分布式任务调度框架作为工程,快速搭建自己的持续集成项目,其他项目可以类似构建。 一、概述 1、自动化部署能简化开发过程的代码管理,让开发人员把更多的时间专注于业务实现, 简化繁琐的上线流程和操作步骤,做到项目的快速打包和部署,减少人...

    tomato 评论0 收藏0
  • 关于Serverless架构及平台选择,你知道多少?

    摘要:初版在年月发布,随后在月正式发布。架构属于平台即服务,针对事件驱动,短暂性的工作负载。架构平台选择目前最有效构建架构方法是在众多架构平台中选择其一,并充分利用它所有的功能,以下将列举几个架构平台亚马逊推出了第一个的云服务平台。 showImg(https://segmentfault.com/img/remote/1460000009775604?w=640&h=356); 数人云近来...

    oysun 评论0 收藏0

发表评论

0条评论

leo108

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<