Naprise is a .NET library that allows you to easily send notifications to popular messaging services like Telegram, Discord, and more. Similar to Apprise.
Note: not all services are used by @Genteure
on a daily basis, some are not tested as thoroughly, if you find any problems please open an issue or even better a pull request.
No API compatibility guarantees are made before version 1.0.0.
dotnet add package Naprise
# or
Install-Package Naprise
var notifier = Naprise.Create("discord://106943697/YGCTVYbXQ7_pTEv-f3jX3e", "notifyruns://notify.run/wiFAz0Kp2BsDicPZI4Tk");
await notifier.NotifyAsync(new Message
{
Type = MessageType.Success,
Title = "Hello from Naprise!",
Markdown = "**This** is a _test_ message. :heart:",
Text = "This is a test message.", // same message in different formats
});
More examples are available in the documentation.
Service | Doc | URL Scheme |
---|---|---|
Apprise | Apprise | apprise:// apprises:// |
Bark | Bark | bark:// barks:// |
Discord | Discord | discord:// |
Gotify | Gotify | gotify:// gotifys:// |
Notica | Notica | notica:// noticas:// |
notify.run | notify.run | notifyrun:// notifyruns:// |
ntfy.sh | ntfy.sh | ntfy:// ntfys:// |
OneBot 11 | OneBot 11 | onebot11:// onebot11s:// |
OneBot 12 | OneBot 12 | onebot12:// onebot12s:// |
PushDeer | PushDeer | pushdeer:// pushdeers:// |
PushPlus | PushPlus | pushplus:// |
ServerChan | ServerChan | serverchan:// |
Telegram | Telegram | telegram:// |
dotnet add package Naprise.Service.MailKit
Naprise.DefaultRegistry.AddMailKit();
Service | Doc | URL Scheme |
---|---|---|
Email via MailKit | Email via MailKit | email:// smtp:// smtps:// |
No promises are made for both API compatibility and URL compatibility before version 1.0.0.
Naprise will use SemVer 2.0.0 for versioning. When there is a breaking change in the API, the major version will be incremented.
I'd like to keep URL backward compatibility as much as possible, but if the URL format of a service is requiered to be changed for some reason, the major version will be incremented.
naprisecli
is designed to be used as a way to test the library, the CLI options and arguments is not considered part of the API and may change at any time.