![图片]()
在项目实施过程中,经常会出现以下需求,需要发送短信邮件或者站内消息提醒给到对应的代办人,或者系统中某些数据到期需要自动发送消息,比如协议到期了,需要自动发送消息去提醒用户协议到期了。
基于以上的需求,HZERO提供的消息发送组件,能通过配置及简单的代码实现消息发送的功能,从而满足我们的需求。
组件概述
消息服务支持短信、邮箱、站内消息、企业微信等消息发送,并能够灵活管理消息模板和对接云平台支持的微服务。
组件坐标
<dependency> <groupId>org.hzero</groupId> <artifactId>hzero-message-saas</artifactId></dependency>
组件架构图
![图片]()
站内消息发送快速入门
下面以一个简单的站内消息发送配置及开发例子,带您快速入门。
短信插件
消息服务的短信服务需要依赖插件,否则短信无法发送。
可添加的插件有阿里云、百度云、腾讯云三种。
<dependency> <groupId>org.hzero.starter</groupId> <artifactId>hzero-starter-sms-aliyun</artifactId></dependency>
<dependency> <groupId>org.hzero.starter</groupId> <artifactId>hzero-starter-sms-baidu</artifactId></dependency>
<dependency> <groupId>org.hzero.starter</groupId> <artifactId>hzero-starter-sms-qcloud</artifactId></dependency>
消息模板
消息模板用于定义及管理消息发送使用的消息模板,便于用户直接使用模板发送不同类型的消息。
路径:消息管理->消息模板
![图片]()
消息发送配置
通过配置及管理关联消息发送,关联模板和发送服务器。关联成功后可测试发送消息
路径:消息管理->消息发送配置
![图片]()
消息接收配置
配置用户接收消息的默认形式,用户可在个人中心的接收配置选择具体的接收形式。
![图片]()
接收者配置
动态选择消息接收的用户或用户群体。
![图片]()
代码调用
@Servicepublic class MessageServiceImpl implements MessageService { private final MessageClient messageClient; @Autowired public MessageServiceImpl(MessageClient messageClient) { this.messageClient = messageClient; } @Override public void sendWebMessage() { long tenantId = 0L; String messageTemplateCode = "HWFP.REMIND"; String lang = "zh_CN"; Receiver receiver = new Receiver().setUserId(1L).setTargetUserTenantId(0L); Map<String, String> args = new HashMap<>(16); args.put("processName", "测试消息"); args.put("processDescription", "测试消息"); // 同步发送站内消息 messageClient.sendWebMessage(tenantId, messageTemplateCode, lang, Collections.singletonList(receiver), args); // 异步发送站内消息 messageClient.async().sendWebMessage(tenantId, messageTemplateCode, lang, Collections.singletonList(receiver), args); }}
常用API调用参考
发送短信
@Servicepublic class MessageServiceImpl implements MessageService { private final MessageClient messageClient; @Autowired public MessageServiceImpl(MessageClient messageClient) { this.messageClient = messageClient; } @Override public void sendSms() { long tenantId = 0L; String serverCode = "HZERO"; String messageTemplateCode = "HIAM.CAPTCHA"; Receiver receiver = new Receiver().setIdd("+86").setPhone("18866886688"); Map<String, String> args = new HashMap<>(16); args.put("captcha", "123456"); // 同步发送站内消息 messageClient.sendSms(tenantId, serverCode, messageTemplateCode, Collections.singletonList(receiver), args); // 异步发送站内消息 messageClient.async().sendSms(tenantId, serverCode, messageTemplateCode, Collections.singletonList(receiver), args); }}
发送邮件
@Servicepublic class MessageServiceImpl implements MessageService { private final MessageClient messageClient; @Autowired public MessageServiceImpl(MessageClient messageClient) { this.messageClient = messageClient; } @Override public void sendEmail() { long tenantId = 0L; String serverCode = "HZERO"; String messageTemplateCode = "HWFP.REMIND"; Receiver receiver = new Receiver().setEmail("hzero@hand-china.com"); Map<String, String> args = new HashMap<>(16); args.put("processName", "测试消息"); args.put("processDescription", "测试消息"); // 同步发送站内消息 messageClient.sendEmail(tenantId, serverCode, messageTemplateCode, Collections.singletonList(receiver), args); // 异步发送站内消息 messageClient.async().sendEmail(tenantId, serverCode, messageTemplateCode, Collections.singletonList(receiver), args); }}
总之,消息管理组件是项目上常用的一个组件,通过它我们能够简单配置实现以下功能:
消息发送的功能;
消息监控功能,监控消息的发送成功和失败;
失败消息的重试;
消息模自定义,通过程序拓展,实现动态显示的效果。
联系我们
产品试用请登录开放平台。请在 PC 端打开:
https://open.hand-china.com/market-home/trial-center/
产品详情请登录开放平台:
https://open.hand-china.com/document-center/
如有疑问登录开放平台提单反馈:
https://open.hand-china.com/
![图片]()
![图片]()
▲ 更多精彩内容,扫码关注 “四海汉得” 公众号