Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
Related issue (if applicable): #1441
This PR adds first-class support for Brevo (formerly SendinBlue) as an email notification provider, modelled on the existing SendGrid and Resend plugins. The new
brevo://plugin uses Brevo’s transactional email API (/v3/smtp/email), supports HTML and plain-text content, CC/BCC, Reply-To, and file attachments, and follows the existing Apprise URL and testing conventions.Brevo Notifications
Brevo is a transactional email platform that exposes a JSON HTTP API for sending mail. The new
NotifyBrevoplugin integrates this API with Apprise, using a URL schema consistent with other email providers such as SendGrid and Resend. The plugin:to=query parameter.textContent.attachmentspayload field, using AppriseAttachment and base64 encoding.The README email table has also been updated to include Brevo alongside other email services, with example syntax consistent with the URL parser.
🛠️ Setup Instructions
APITokenpart of your Apprise URL.brevo://URL using the syntax below, substituting your API key, From address, and target recipients.subject: Security Alert: Verify a new IP) indicating thatSomeone tried to use your organization account and make an API call with an IP address you have never used before. We wanted to check this activity with you.. You then need to use the confirmation link to approve the IP in question. From that point forward Apprise should work uninterrupted.✅ Apprise Support
Syntax
Valid syntax is as follows:
brevo://APIToken:FromEmailbrevo://APIToken:FromEmail/ToEmailbrevo://APIToken:FromEmail/ToEmail1/ToEmail2/ToEmailN[email protected],[email protected][email protected],[email protected][email protected],[email protected]?reply=Reply Name <[email protected]>The plugin URL template is:
{schema}://{apikey}:{from_email}{schema}://{apikey}:{from_email}/{targets}🔐 Parameter Breakdown
APITokenapi-keyheader value).FromEmailsender.email).ToEmailtoccbccreplyformathtmlortext), consistent with Apprise core.Examples
Send a basic Brevo notification to yourself (from and to are the same):
Send an email from
[email protected]to a single recipient:Send to multiple recipients with CC, BCC and a Reply-To header:
Send with an attachment:
New Service Completion Status
keywordssection to identify our new service (Brevo added alphabetically between “BlueSky” and “BulkSMS”).%global common_descriptionlist to mention Brevo (email) support.Checklist
tox -e lintand eventox -e formatto autofix what it can)tox -e minimal)Notes:
test_plugin_brevo.pyhas been added withAppriseURLTestercoverage for malformed URLs, good URLs, privacy behaviour, HTTP failure mapping, request exceptions, and attachment handling.Testing
Anyone can help test this source code as follows: