📣读完这篇文章里你能收获到
- 傻瓜式扩展方法直接使用
- 如何通过EasyNotice快速实现邮件/钉钉/飞书/企业微信的通知发送
- 感谢点赞+收藏,避免下次找不到~
文章目录
一、EasyNotice
这是一个基于.NET开源的消息通知组件,它包含了邮件、钉钉、飞书、企业微信的群机器人通知,可以帮助我们更容易地发送程序异常通知!
1. 源码地址
2. 功能介绍
- 支持[邮件]、[钉钉]、[飞书]、[企业微信]方式发送
- 支持自定义发送间隔,避免同样的异常频繁通知
- 傻瓜式配置,开箱即用
3. 平台支持
- SMTP邮箱
- 钉钉群机器人
- 飞书群机器人
- 企业微信群机器人
二、项目接入
1. 邮件通知
邮件通知支持同时发送给多个收件人
- Step 1 : 安装包,通过Nuget安装包
Install-Package EasyNotice.Core
Install-Package EasyNotice.Email
- Step 2 : 配置 Startup 启动类
publicclassStartup{//...publicvoidConfigureServices(IServiceCollection services){//configuration
services.AddEsayNotice(config =>{
config.IntervalSeconds =10;//同一标题的消息,10秒内只能发一条,避免短时间内大量发送重复消息
config.UseEmail(option =>{
option.Host ="smtp.qq.com";//SMTP地址
option.Port =465;//SMTP端口
option.FromName ="System";//发送人名字(自定义)
option.FromAddress ="[email protected]";//发送邮箱
option.Password ="passaword";//秘钥
option.ToAddress =newList<string>()//收件人集合{"[email protected]"};});});}}
- Step 3 : IEmailProvider服务接口使用
[ApiController][Route("[controller]/[action]")]publicclassNoticeController:ControllerBase{privatereadonlyIEmailProvider _mailProvider;publicNoticeController(IEmailProvider provider){
_mailProvider = provider;}[HttpGet]publicasyncTaskSendMail([FromQuery]string str){await _mailProvider.SendAsync(str,newException(str));}}
2. 钉钉通知
配置钉钉群机器人官方文档
- Step 1 : 安装包,通过Nuget安装包
Install-Package EasyNotice.Core
Install-Package EasyNotice.Dingtalk
- Step 2 : 配置 Startup 启动类
publicclassStartup{//...publicvoidConfigureServices(IServiceCollection services){//configuration
services.AddEsayNotice(config =>{
config.IntervalSeconds =10;//同一标题的消息,10秒内只能发一条,避免短时间内大量发送重复消息
config.UseDingTalk(option =>{
option.WebHook ="https://oapi.dingtalk.com/robot/send?access_token=xxxxx";//通知地址
option.Secret ="secret";//签名校验});});}}
- Step 3 : IDingtalkProvider服务接口使用
[ApiController][Route("[controller]/[action]")]publicclassNoticeController:ControllerBase{privatereadonlyIDingtalkProvider _dingtalkProvider;publicNoticeController(IDingtalkProvider dingtalkProvider){
_dingtalkProvider = dingtalkProvider;}[HttpGet]publicasyncTaskSendDingTalk([FromQuery]string str){await _dingtalkProvider.SendAsync(str,newException(str));}}
3. 飞书通知
配置飞书群机器人官方文档
- Step 1 : 安装包,通过Nuget安装包
Install-Package EasyNotice.Core
Install-Package EasyNotice.Feishu
- Step 2 : 配置 Startup 启动类
publicclassStartup{//...publicvoidConfigureServices(IServiceCollection services){//configuration
services.AddEsayNotice(config =>{
config.IntervalSeconds =10;//同一标题的消息,10秒内只能发一条,避免短时间内大量发送重复消息
config.UseFeishu(option =>{
option.WebHook ="https://open.feishu.cn/open-apis/bot/v2/hook/xxxxx";//通知地址
option.Secret ="secret";//签名校验});});}}
- Step 3 : IFeishuProvider服务接口使用
[ApiController][Route("[controller]/[action]")]publicclassNoticeController:ControllerBase{privatereadonlyIFeishuProvider _feishuProvider;publicNoticeController(IFeishuProvider feishuProvider){
_feishuProvider = feishuProvider;}[HttpGet]publicasyncTaskSendFeishu([FromQuery]string str){await _feishuProvider.SendAsync(str,newException(str));}}
4. 企业微信通知
配置企业微信群机器人官方文档
- Step 1 : 安装包,通过Nuget安装包
Install-Package EasyNotice.Core
Install-Package EasyNotice.Weixin
- Step 2 : 配置 Startup 启动类
publicclassStartup{//...publicvoidConfigureServices(IServiceCollection services){//configuration
services.AddEsayNotice(config =>{
config.IntervalSeconds =10;//同一标题的消息,10秒内只能发一条,避免短时间内大量发送重复消息
config.UseWeixin(option =>{
option.WebHook ="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxx";//通知地址});});}}
- Step 3 : IWeixinProvider服务接口使用
[ApiController][Route("[controller]/[action]")]publicclassNoticeController:ControllerBase{privatereadonlyIWeixinProvider _weixinProvider;publicNoticeController(IWeixinProvider weixinProvider){
_weixinProvider = weixinProvider;}[HttpGet]publicasyncTaskSendWexin([FromQuery]string str){await _weixinProvider.SendAsync(str,newException(str));}}
三、更多示例
- 查看 更多使用例子
- 查看 更多测试用例
- 源码地址:https://github.com/Bryan-Cyf/EasyNotice
- 对你有用的话,顺手点个小小的star
版权归原作者 老陈聊架构 所有, 如有侵权,请联系我们删除。