『EasyNotice』.NET开源消息通知组件——快速实现邮件/钉钉告警通知

📣读完这篇文章里你能收获到
- 傻瓜式扩展方法直接使用
- 如何通过EasyNotice快速实现钉钉/邮件的通知发送
- 感谢点赞+收藏,避免下次找不到~

文章目录
- 一、EasyNotice
- 1. 功能介绍
- 2. 源码地址
- 二、项目接入
- 1. 发送邮件通知
- Step 1 : 安装包,通过Nuget安装包
- Step 2 : 配置 Startup 启动类
- Step 3 : IEmailProvider服务接口使用
- 2. 发钉钉通知
- Step 1 : 安装包,通过Nuget安装包
- Step 2 : 配置 Startup 启动类
- Step 3 : IDingtalkProvider服务接口使用
- 3. 更多示例

一、EasyNotice
这是一个基于.NET开源的消息通知组件,它包含了邮件通知、钉钉通知,可以帮助我们更容易地发送程序异常通知!
1. 功能介绍
- 支持邮件发送、钉钉发送
- 支持自定义发送间隔,避免同样的异常频繁通知
- 傻瓜式配置,开箱即用
2. 源码地址
- https://github.com/Bryan-Cyf/EasyNotice

二、项目接入
1. 发送邮件通知
邮件通知支持同时发送给多个收件人
Step 1 : 安装包,通过Nuget安装包
Install-Package EasyNotice.Core
Install-Package EasyNotice.Email
Step 2 : 配置 Startup 启动类
public class Startup
{//...public void ConfigureServices(IServiceCollection services){//configurationservices.AddEsayNotice(config =>{config.IntervalSeconds = 10;//同一标题的消息,10秒内只能发一条,避免短时间内大量发送重复消息config.UseEmail(option =>{option.Host = "smtp.qq.com";//smtp域名option.Port = 465;//端口option.FromName = "System";//发送人名字(自定义)option.FromAddress = "12345@qq.com";//发送邮箱option.Password = "passaword";//秘钥option.ToAddress = new List<string>()//收件人集合{"12345@qq.com"};});});}
}
Step 3 : IEmailProvider服务接口使用
[ApiController]
[Route("[controller]/[action]")]
public class NoticeController : ControllerBase
{private readonly IEmailProvider _mailProvider;public NoticeController(IEmailProvider provider){_mailProvider = provider;}[HttpGet]public async Task SendMail([FromQuery] string str){//发送邮件await _mailProvider.SendAsync(str, new Exception(str));}
}
2. 发钉钉通知
Step 1 : 安装包,通过Nuget安装包
Install-Package EasyNotice.Core
Install-Package EasyNotice.Dingtalk
Step 2 : 配置 Startup 启动类
public class Startup
{//...public void ConfigureServices(IServiceCollection services){//configurationservices.AddEsayNotice(config =>{config.IntervalSeconds = 10;//同一标题的消息,10秒内只能发一条,避免短时间内大量发送重复消息config.UseDingTalk(option =>{option.WebHook = "https://oapi.dingtalk.com/robot/send?access_token=xxx";option.Secret = "secret";});});}
}
Step 3 : IDingtalkProvider服务接口使用
[ApiController]
[Route("[controller]/[action]")]
public class NoticeController : ControllerBase
{private readonly IDingtalkProvider _dingtalkProvider;public NoticeController(IDingtalkProvider dingtalkProvider){_dingtalkProvider = dingtalkProvider;}[HttpGet]public async Task SendDingTalk([FromQuery] string str){await _dingtalkProvider.SendAsync(str, new Exception(str));}
}
3. 更多示例
- 查看 更多使用例子
- 查看 更多测试用例
- 源码地址:https://github.com/Bryan-Cyf/EasyNotice
- 对你有用的话,顺手点个小小的star
相关文章:
『EasyNotice』.NET开源消息通知组件——快速实现邮件/钉钉告警通知
📣读完这篇文章里你能收获到 傻瓜式扩展方法直接使用如何通过EasyNotice快速实现钉钉/邮件的通知发送感谢点赞收藏,避免下次找不到~ 文章目录一、EasyNotice1. 功能介绍2. 源码地址二、项目接入1. 发送邮件通知Step 1 : 安装包,通过Nuget安装…...
JVM垃圾回收算法
垃圾标记阶段 对象存活判断:在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC才会在执行垃圾回收时,…...
怎么看待ChatGPT封号这件事呢?
最近的ChatGPT大量封号,刷爆了全网,我的两个个人账号被封禁了,不知道大家最近有没有遇到相关的报错信息,要么就是检查你当前的浏览器配置,最后来一个access denied,要么直接就给你来一个当前的国家不支持。…...
八、交换技术原理
(一)交换机 1、交换机介绍 一种用于电(光)信号转发的网络设备,可以为接入交换机的任意两个网络节点提供独享的电信号通路。 工作于第二层的叫交换机,工作于第三层的叫第三层交换机,最常见的是…...
什么是DHCP?DHCP有什么用?(中科三方)
在IP网络中,每一个连接的设备都需要分配一个唯一的IP地址,才能实现和Internet上其他设备的互联。在一些终端规模较大的网络中,需要为每一个主机手工配置IP地址,以避免IP地址的重复,如果主机发生变更,还要去…...
算法设计-二分
一、有序和单调 二分本质上是一种更加智能的搜索状态空间的方式,他需要状态空间的状态呈现一种“有序的一维数组”的形式,然后再进行搜索。所以一开始的排序是无法避免的。 因为二分的写法问题,所以应当怎样排序也是有一定讲究的&…...
隧道技术基础
隧道技术基础基本概念端口转发应用层代理基本概念 攻击者通过边界主机进入内网,往往会利用它当跳板进行横向渗透,但现在的内部网络大多部署了很多安全设备,网络结构错综复杂,对于某些系统的访问会受到各种阻挠,这就需…...
卡尔曼滤波浅析
文章目录前言任务状态预测外部影响因素外部不确定性状态更新利用测量进一步修正状态合并两个高斯分布公式汇总图形化解释总结(readme)references前言 Kalman Filter算法,是一种递推预测滤波算法,算法中涉及到滤波,也涉…...
Eolink Apikit 创建/生成 API 文档
在 API 研发管理产品中,几乎所有的协作工作都是围绕着 API 文档进行的。 我们在接触了大量的客户后发现,采用 文档驱动 的协作模式会比先开发、后维护文档的方式更好,团队协作效率和产品质量都能得到提高。因此我们建议您尝试基于文档来进行工…...
2023年上半年系统分析师备考法则
截止3月30日,上海、北京等地都开始报名,部分省市已经截止报名,大家如果还没报名成功的赶紧报名,千万别错过了,另外就是别忘了缴费,缴费成功才是报名成功。 报名网址:https://bm.ruankao.org.cn…...
【人工智能】—约束传播、弧约束、问题结果与问题分解、局部搜索CSP
【人工智能】—约束传播、弧约束、问题结果与问题分解、局部搜索CSP约束传播弧约束弧相容算法AC-3问题结构化简约束图-树结构CSP问题的局部搜索CSP的迭代算法举例:4-Queens加速:模拟退火法加速:最小最大优化(约束加权法)小结约束传播 前向检…...
Java设计模式面试专题
1.请列举出在 JDK 中几个常用的设计模式? 单例模式(Singleton pattern)用于 Runtime,Calendar 和其他的一些类中。工厂模式(Factory pattern)被用于各种不可变的类如 Boolean,像 Boolean.value…...
文件(下)——“C”
各位CSDN的uu们你们好呀,今天,小雅兰的内容是文件的知识点,下面,就让我们进入文件的世界吧 文件的顺序读写 文件的随机读写 fseek ftell rewind 文本文件和二进制文件 文件读取结束的判定 文件缓冲区 在上篇博客中,…...
bugku 渗透靶场3
前言 本题一共八个flag,主要是为了练习内网渗透的思路。 解题思路 首先给了一个站长之家-模拟蜘蛛爬取,这个以前见到过,存在sstf漏洞,直接读取文件。 file:///flag既然是要内网渗透,那肯定要看/etc/hosts。 file:…...
NER 任务以及联合提槽任务
KBERT 论文:《K-BERT: Enabling Language Representation with Knowledge Graph》 论文地址:https://arxiv.org/pdf/1909.07606v1 git地址:https://github.com/autoliuweijie/K-BERT SoftLexicon 出自ACL 2020的Simplify the Usage of Lexic…...
scala函数式编程
目录 不同范式对比: 1.面向对象编程 2.函数式编程 2.1函数基本语法 2.2函数和方法的区别 核心概念: 2.3函数定义 2.4函数参数 2.5 函数至简原则 2.6.高阶函数 三.偏函数 四.柯里化函数 五.递归函数 递归函数注意点: 六.控制抽象 1…...
网吧2023:热闹回来了,电竞战歌起
【潮汐商业评论/原创】 大年初四下午,人民公园附近尚未恢复往日热闹,上海网鱼电竞负责人崔潇瀚驱车前往位于人广世贸商场的网鱼电竞。 与广场上三两路人行色匆匆相比,门店显得忙碌异常,前台的服务叫单声响个不停,员工…...
代码随想录算法训练营第五十九天|503.下一个更大元素II、42. 接雨水
LeetCode 503 下一个更大元素II 题目链接:https://leetcode.cn/problems/next-greater-element-ii/ 思路: 方法一:两个for循环遍历单调栈 第一个for循环确定数组中的某个值在右边有最大的数,第二个for循环是为了可以使数组变成循环数…...
9、简单功能分析
文章目录1、静态资源访问1.1、静态资源目录1.2、如果静态资源与controller资源重名1.3、改变默认的静态资源路径1.4、修改静态资源访问前缀1.5、webjar2、欢迎页支持3、自定义 Favicon4、静态资源配置原理4.1、与Web开发有关的相关自动配置类4.2、WebMvcAutoConfiguration 注解…...
如何发送和接收参数?五种参数传递方法
通常情况下,我们可以使用GET或POST来发送请求和数据,但GET和POST两种方法所携带的数据都是比较简单的数据,接下来在我们这个基础上,列举5种比较负责的参数传递方法,并对这些参数如何发送,后台改如何接收做详…...
教无人机操控3年,这款仿真软件让我彻底告别“真机实训焦虑”
作为无人机专业实操教师,深耕一线教学3年,最大的痛点莫过于“真机实训难”——相信同行们都有共鸣,无人机操控教学看似是“练手”,实则处处是坑,每一个难题都让人头疼不已,甚至一度让我陷入教学焦虑。整理了…...
运放跟随器:电路设计中最容易被低估的‘保镖‘(隔离驱动全解析)
运放跟随器:电路设计中最容易被低估的"保镖"(隔离&驱动全解析) 在硬件工程师的日常设计中,运放跟随器常常被视为一个"可有可无"的组件——毕竟它的电压增益仅为1,看起来似乎只是将输入信号原封…...
DanKoe 视频笔记:原创思维指南:如何进行原创思考
在本教程中,我们将学习如何摆脱思维定式,培养真正的原创思考能力。我们将探讨为何独立思考如此困难,并提供一套实用的方法来帮助你形成自己的观点、连接不同领域的知识,并最终创造出有价值的内容。 概述 每个人都希望成为一个原创…...
ROS 实战指南:从 rosbag 高效提取 RGB 与深度图数据
1. rosbag基础操作与核心概念 在机器人开发领域,rosbag就像是一个万能的数据记录仪。想象一下你正在调试一个机器人视觉系统,传感器数据像流水一样不断涌来,这时候rosbag就能帮你把关键数据"冻住",方便后续反复分析。我…...
STEP3-VL-10B实际作品集:MMBench 92.05分视觉识别能力高清图文输出示例
STEP3-VL-10B实际作品集:MMBench 92.05分视觉识别能力高清图文输出示例 1. 引言:当AI“看懂”了世界 你有没有想过,让AI像人一样“看懂”一张图片,到底有多难? 这不仅仅是识别出图片里有什么东西那么简单。比如给你…...
科哥二次开发Image-to-Video:性能提升39%,小白友好度大增
科哥二次开发Image-to-Video:性能提升39%,小白友好度大增 1. 项目背景与核心价值 Image-to-Video技术正在改变内容创作的方式,它能够将静态图片转化为生动的视频内容。然而,原始I2VGen-XL模型在实际应用中面临两大挑战ÿ…...
PHPBrew终极性能优化指南:10个技巧加速PHP编译安装
PHPBrew终极性能优化指南:10个技巧加速PHP编译安装 【免费下载链接】phpbrew Brew & manage PHP versions in pure PHP at HOME 项目地址: https://gitcode.com/gh_mirrors/ph/phpbrew PHPBrew是一款纯PHP编写的PHP版本管理工具,能够帮助开发…...
保姆级教程:在Windows上用VSCode和nRF5340 Audio DK板跑通第一个蓝牙例程
从零开始:WindowsVSCode环境下的nRF5340 Audio DK蓝牙开发实战 在嵌入式开发领域,Nordic Semiconductor的nRF5340 Audio DK开发板因其强大的双核架构和出色的蓝牙音频性能而备受瞩目。但对于刚接触这款开发板的工程师来说,从环境配置到成功运…...
gh_mirrors/eg/eggs深度解析:一站式解决所有服务器部署难题
gh_mirrors/eg/eggs深度解析:一站式解决所有服务器部署难题 【免费下载链接】eggs Service eggs for the pterodactyl panel 项目地址: https://gitcode.com/gh_mirrors/eg/eggs 在服务器管理领域,快速部署和高效运维一直是开发者和管理员面临的核…...
5分钟解锁网盘直链下载:告别限速,拥抱满速自由
5分钟解锁网盘直链下载:告别限速,拥抱满速自由 【免费下载链接】baiduyun 油猴脚本 - 一个免费开源的网盘下载助手 项目地址: https://gitcode.com/gh_mirrors/ba/baiduyun 还在为网盘下载速度而烦恼吗?你是否经历过下载一个几GB的文件…...
