Aore.Notice
1.0.0
dotnet add package Aore.Notice --version 1.0.0
NuGet\Install-Package Aore.Notice -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Aore.Notice" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Aore.Notice" Version="1.0.0" />
<PackageReference Include="Aore.Notice" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Aore.Notice --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Aore.Notice, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Aore.Notice@1.0.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Aore.Notice&version=1.0.0
#tool nuget:?package=Aore.Notice&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Aore.Notice — .NET SDK
📈 一个基于 .NET Standard 2.0 统一消息通知组件,包含了邮件通知、钉钉群机器人、飞书群机器人、企业微信群机器人通知,帮助我们更容易地发送程序异常通知。我将继续保持更新,并正在深度融合更多场景应用👐
使用 Aore.Notice,您可以方便快速将现有项目或新项目实现消息通知支持。
目前 Aore.Notice 支持 .NET Standard 2.0 等多种框架,同时兼容所有 MVC、Razor、WebApi、Console(命令行)、桌面应用(.exe)和后台服务等环境,和外部框架完全解耦。
希望有更多的人可以从中受益,理解并传播开源的精神,一同助力中国开源事业!感恩一路上给我们提供帮助的朋友们!
如果你喜欢并希望我们继续优化这个项目,请给我们一个 ★Star :)
✨ 功能特性
- 多平台支持
- 支持钉钉/飞书/企业微信群机器人 + 邮件四种通知渠道
- 兼容 .NET Standard 2.0 及以上框架
- 支持 MVC/WebApi/Console/桌面应用/后台服务等环境
- 消息防刷机制
- 通过 IntervalSeconds 参数控制消息发送频率(如 new NoticeOptions(){ IntervalSeconds = 1 })
- @提醒功能
- 支持通过 CommonNoticeAtUser 对象指定 @对象(如 new CommonNoticeAtUser(){IsAtAll = true, Mobile = new[]{"159XXXXXX44"}})
- 异常消息格式化
- 支持直接传递 Exception 对象作为消息内容(如 new Exception("custom exception"))
- ...
🚀Aore.Notice 操作示例 :开启你的改造开发之旅!
.NET CLI:
dotnet add package Aore.Notice --version 1.0.0
或
Nuget包进行搜索下载
🛠 钉钉群机器人
new DingtalkOptions() {
WebHook = "https://oapi.dingtalk.com/robot/send?access_token=XXXXX",
Secret = "XXXXXX"
}
// ...
- 支持签名校验(通过 Secret 参数)
- 支持 @ 指定手机号用户或全体成员
- 官方文档:钉钉群机器人
// 同步发送
_dingtalkNotice!.Send("通知标题", "同步消息");
// 异步发送
await _dingtalkNotice!.SendAsync("通知标题", new Exception("custom exception"));
// @指定用户
_dingtalkNotice!.Send("通知标题", "同步消息", new CommonNoticeAtUser() {
IsAtAll = true,
Mobile = new[]{"159XXXXXX44"}
});
// ...
🔍 企业微信群机器人
new WeixinOptions() {
WebHook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxx"
}
// ...
- 支持通过 key 参数鉴权
- 支持 @ 指定成员(需配置成员手机号)
- 官方文档:企业微信群机器人
// 同步发送
_weixinProvider?.Send("通知标题", new Exception("custom exception"))!;
// 异步发送
await _weixinProvider?.SendAsync("通知标题", new Exception("custom exception"))!;
// @指定成员
_weixinProvider?.Send("通知标题", "custom exception", new CommonNoticeAtUser() {
IsAtAll = false,
Mobile = new[]{"159XXXXXX44"}
});
// ...
☑️ 飞书群机器人
new FeishuOptions() {
WebHook = "https://open.feishu.cn/open-apis/bot/v2/hook/fa76a793-ab4e-49ef-938f-xxxxxx",
Secret = "" // 可选签名
}
// ...
- 支持可选签名校验
- 支持纯文本消息发送
- 官方文档:飞书群机器人
// 同步发送
_feishuProvider!.Send("通知标题", "同步 Hello");
// 异步发送
await _feishuProvider!.SendAsync("通知标题", "异步 Hello");
// @全体成员
_feishuProvider!.Send("通知标题", "同步 Hello", new CommonNoticeAtUser() {
IsAtAll = true
});
// ...
✨ 邮件通知
new EmailOptions() {
Host = "smtp.163.com",
Port = 465,
FromName = "WEI.ZHOU",
FromAddress = "xandxiao@163.com",
Password = "xxxxxxx",
ToAddress = new List<string>() { "xiaoandx@qq.com" }
}
// ...
- 支持 SMTP 协议发送
- 支持指定发件人/收件人列表
- 支持邮件标题与内容自定义
// 异步发送异常消息
await _emailProvider!.SendAsync("Aore.Notice email Async test", new Exception("custom exception"));
// 同步发送
_emailProvider!.Send("Aore.Notice email test", new Exception("custom exception"));
// 指定收件人
_emailProvider!.Send("Aore.Notice email test", new Exception("custom exception"),
new CommonNoticeAtUser() {
UserId = new[]{"me@xiaoandx.cn"}
});
// ...
📚 通用功能作
- 消息发送接口
- 所有平台均实现 ICommonNotice 接口,提供统一的 Send/SendAsync 方法
- 消息去重机制
- 通过 NoticeOptions.IntervalSeconds 控制相同标题消息的发送间隔
- 初始化方式
- 支持两种初始化方式:
- 通过 NoticeFactory 工厂类创建(推荐)
- 直接实例化 XXXProvider 类
- 支持两种初始化方式:
- 异常处理
- 返回值统一为 NoticeResponse 对象,通过 IsSuccess 属性判断发送状态
var response = _dingtalkNotice!.Send("通知标题", "同步消息");
Assert.True(response.IsSuccess);
📢 更新记录
Dingtalk (钉钉)群组机器人发送消息管理器Email (邮箱)邮箱发送消息管理器Feishu (飞书)群组机器人发送消息管理器Weixin (企业微信)群组机器人发送消息管理器Dingtalk (钉钉)群组机器人采用同步发送消息管理器Email (邮箱)邮箱采用同步发送消息管理器Feishu (飞书)群组机器人采用同步发送消息管理器Weixin (企业微信)群组机器人采用同步发送消息管理器- 四个平台支持@用户消息提示发送
✋ 贡献代码
如果需要使用或修改此项目的源代码,建议先Fork。也欢迎将您修改的通用版本Pull Request过来。
- Fork
- 创建您的特性分支 (
git checkout -b my-new-feature) - 提交您的改动 (
git commit -am 'Added some feature') - 将您的修改记录提交到远程
git仓库 (git push origin my-new-feature) - 然后到 github 网站的该
git远程仓库的my-new-feature分支下发起 Pull Request (请提交到Developer分支,不要直接提交到master分支)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- MailKit (>= 4.13.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.7)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.7)
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 429 | 7/25/2025 |
一个基于 .NET Standard 2.0 统一消息通知组件,包含了邮件通知、钉钉群机器人、飞书群机器人、企业微信群机器人通知,帮助我们更容易地发送程序异常通知