<commit_before># 消息中心

## 功能
消息中心提供了发送短信和发送邮件的基础功能,并且提供了历史发送消息列表，内容如下：
- 历史消息, 展示所有历史发送消息清单
![历史消息](./img/messageCenter/message.jpg)

- 消息模板 配置消息内容模板
![消息模板](./img/messageCenter/message-template.jpg)
- 消息发送者 配置具体的消息发送服务，比如系统默认内置了腾讯云的短信发送api作为短信发送服务，当然你可以配置自己的
![消息模板](./img/messageCenter/message-sender.jpg)

## 开发手册

###  配置新的短信模板
比如用户注册的时候需要发送短信验证码，那么就需要配置短信模板，短信模板的关键内容有三个
- 短信编码，用于发送短信的时候做模板标识
- 内容，发送的短信内容模板
- 短信发送器，配置使用的短信发送服务上
示例
![短信模板编辑](./img/messageCenter/message-template-add.jpg)

配置完毕后就可以在何时的场景下调用发送短信：
```java
@Autowired
private MessageService messageService;
//三个参数分别为短信模板编号,接收者手机号，短信内容中的参数，在该模板中及{1}对应的参数
 messageService.sendSms("REGISTER_CODE", "15021292929", "2322");
```
### 新增短信发送器
有的同学可能用其他的短信服务上，那么就需要开发自己的短信发送器，步骤如下：
- 参考cn.enilu.flash.service.message.sms.tencent.TencentSmsSender 实现一个SmsSender即可
- 在短信发送者界面配置新的短信发送器
![短信发送器编辑](./img/messageCenter/message-sender-add.jpg)
- 然后再短信模板界面选择新增的短信发送器即可

### 配置邮件模板
邮件发送和短信一样，首先配置邮件模板，然后调用即可，一般情况下不会需要再新增邮件发送器，默认的就可以用了。简单如斯，不一一赘述，下面是调用示例：
```java
//发送简单邮件
messageService.sendSimpleEmail("EMAIL_TEST", "<EMAIL>", "<EMAIL>", null, "简单模板邮件", "张三", "web-flash");
//发送html模板复杂邮件
messageService.sendTplEmail("EMAIL_HTML_TEMPLATE_TEST", "<EMAIL>", "<EMAIL>", null, "html模板邮件", Maps.newHashMap("userName", "李四", "appName", "WEB-FLASH"));
//发送带附件的邮件
messageService.sendTplEmail("EMAIL_HTML_TEMPLATE_TEST", "<EMAIL>", "<EMAIL>", null, "带附件的邮件",
"测试附件.txt",new FileSystemResource(new File("d:\\test.txt")),
Maps.newHashMap("userName", "李四", "appName", "WEB-FLASH"));
```<commit_msg>add doc<commit_after># 消息中心

## 功能
消息中心提供了发送短信和发送邮件的基础功能,并且提供了历史发送消息列表，内容如下：
- 历史消息, 展示所有历史发送消息清单
![历史消息](./img/messageCenter/message.jpg)

- 消息模板 配置消息内容模板
![消息模板](./img/messageCenter/message-template.jpg)
- 消息发送者 配置具体的消息发送服务，比如系统默认内置了腾讯云的短信发送api作为短信发送服务，当然你可以配置自己的
![消息模板](./img/messageCenter/message-sender.jpg)

## 开发手册

###  配置新的短信模板
比如用户注册的时候需要发送短信验证码，那么就需要配置短信模板，短信模板的关键内容有三个
- 短信编码，用于发送短信的时候做模板标识
- 内容，发送的短信内容模板
- 短信发送器，配置使用的短信发送服务上
示例
![短信模板编辑](./img/messageCenter/message-template-add.jpg)

配置完毕后就可以在何时的场景下调用发送短信：
```java
@Autowired
private MessageService messageService;
//三个参数分别为短信模板编号,接收者手机号，短信内容中的参数，在该模板中及{1}对应的参数
 messageService.sendSms("REGISTER_CODE", "15021292929", "2322");
```
### 新增短信发送器
有的同学可能用其他的短信服务上，那么就需要开发自己的短信发送器，步骤如下：
- 参考cn.enilu.flash.service.message.sms.tencent.TencentSmsSender 实现一个SmsSender即可
- 在短信发送者界面配置新的短信发送器
![短信发送器编辑](./img/messageCenter/message-sender-add.jpg)
- 然后再短信模板界面选择新增的短信发送器即可

### 配置邮件模板
邮件发送和短信一样，首先配置邮件模板，然后调用即可，一般情况下不会需要再新增邮件发送器，默认的就可以用了。简单如斯，不一一赘述，下面是调用示例：
```java
//发送简单邮件
messageService.sendSimpleEmail("EMAIL_TEST", "<EMAIL>", "<EMAIL>", null, "简单模板邮件", "张三", "web-flash");
//发送html模板复杂邮件
messageService.sendTplEmail("EMAIL_HTML_TEMPLATE_TEST", "<EMAIL>", "to<EMAIL>", null, "html模板邮件", Maps.newHashMap("userName", "李四", "appName", "WEB-FLASH"));
//发送带附件的邮件
messageService.sendTplEmail("EMAIL_HTML_TEMPLATE_TEST", "<EMAIL>", "<EMAIL>", null, "带附件的邮件",
"测试附件.txt",new FileSystemResource(new File("d:\\test.txt")),
Maps.newHashMap("userName", "李四", "appName", "WEB-FLASH"));
```


**PS** 这个功能大部分代码是用代码生成器生成的，如果你还没有用过，可以试试这个[代码生成器](../ecosystem/code-generator.md)
{'fraction_non_alphanumeric': 0.1731135066582118, 'fraction_numerical': 0.010145846544071021, 'mean_word_length': 8.334319526627219, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4485921', 'n_tokens_mistral': 1962, 'n_tokens_neox': 2258, 'n_words': 147}