消息推送组件概述
业务需求
消息推送主要用户提升用户体验,避免用户刷新页面从服务器端拉取数据。例如邮件提醒,重要通知能即时推送给用户,提高用户体验。
功能说明
iuap-message组件提供了向手机发送短信、发送电子邮件、向APP推送消息的功能。
- 提供了向手机发送短信
- 提供了发送电子邮件
- 电子邮件支持抄送、密送
- 电子邮件支持附件发送
- 提供了向APP推送消息的功能
- 可扩展的消息发送方式;
整体设计
依赖环境
组件采用Maven进行编译和打包发布,其对外提供的依赖方式如下:
<dependency>
<groupId>com.yonyou.iuap</groupId>
<artifactId>iuap-message</artifactId>
<version>${iuap.modules.version}</version>
</dependency>
${iuap.modules.version} 为平台在maven私服上发布的组件的version。
功能说明
iuap-message组件提供了向手机发送短信、发送电子邮件、向APP推送消息的功能。
- 消息推送
在公司现有的消息推送平台的基础上,利用此平台的REST服务,将业务数据包装成符合要求的格式,发送到平台上,完成APP的推送。(用户的移动端也需要安装平台提供的SDK) - 发送短信
发送短信的功能是基于公司的短信推送平台,通过此平台的提供的REST服务,按照平台的要求,将数据封装提交到平台,完成短信发送任务。目前支持国内的移动、联通和电信三大网络。 - 发送邮件
电子邮件服务,是基于JavaMail实现的邮件发送服务,使用JDK原生的javax.mail组件来完成发送邮件的服务。
主要工作流程如下:
- 验证登录权限Authenticator
- 根据设置的Properties和Authenticator创建一个Session
- 创建一个MimeMessage实例,设置这个message的收信人、主题、内容等
- 发送邮件Transport.send(message);
使用说明
组件包说明
iuap-message组件提供了向手机发送短信、发送电子邮件、向APP推送消息的功能。
组件配置
将配置文件message-senderInfo.xml(可在上文示例工程拿到)放到工程的classpath下,如果是maven工程,放在src/main/resources目录下即可
工程样例
消息推送组件提供有示例工程iuap-message-example,用户可从maven库上下载,示例工程中有较为完整的对iuap-message组件的使用示例代码。
开发步骤
可直接参考以下示例工程:
1 . 添加配置文件:
将配置文件message-senderInfo.xml(可在上文示例工程拿到)放到工程的classpath下,如果是maven工程,放在src/main/resources目录下即可
2 . 调用消息服务的接口方法,发送消息:
// 创建消息接收者
MessageReceiver emailReceivers = new EmailReceiver("[email protected],[email protected]");
// 创建消息内容
MessageContent emailContent = new EmailContent("我是标题1", "测试内容1");
// 发送消息
List<MessageResponse> responseList = new MessageSend(emailReceivers, emailContent).send();
常用接口
描述
短信、邮件和APP消息推送接口
请求方法
new MessageSend(msgReceivers, msgContent).send();
请求参数说明
参数字段 |
必选 |
类型 |
长度 |
说明 |
---|---|---|---|---|
msgReceivers |
True |
MessageReceiver |
- |
消息的接收者,有多个的时候,按照英文”,”分割 |
msgContent |
True |
MessageContent |
- |
消息内容,包含消息标题,消息内容,发送时间。其中消息标题和发送时间非必填 |
- msgReceivers消息接收者。可以是邮件地址,或者是电话号码,或者是APP ID。
- msgContent消息内容,可以设置消息标题、文本内容。
扩展机制
发送HTML内容的电子邮件:
在设置邮件发送内容时,可以直接编写HTML代码,如下:
StringBuffer htmlContent = new StringBuffer();
htmlContent.append("<h1>我是标题</h1>");
htmlContent.append("<h3>企业互联网运营支撑平台</h3>");
htmlContent.append("<div><img src='http://img4.3lian.com/sucai/img6/230/29.jpg'></div>");
htmlContent.append("<a href='http://iuap.yonyou.com/'>用友开放平台</a>");
MessageContent mailContent = new EmailContent("HTML Mail测试", htmlContent.toString());
这样就可以发送HTML格式的邮件。