feat: add mailto SMTP support and parity coverage#32
Merged
Conversation
📝 WalkthroughWalkthroughThis pull request adds mailto and mailtos URL scheme support for SMTP-based email notifications. It includes a complete SMTP client implementation with TLS/encryption support, schema registration, test infrastructure for SMTP message capture, and comprehensive parity testing against Python Apprise behavior. Changes
Sequence DiagramsequenceDiagram
participant Client
participant MailtoTarget
participant SMTPConn as SMTP Connection
participant SMTPServer as SMTP Server
Client->>MailtoTarget: Send(body, title)
MailtoTarget->>MailtoTarget: Parse mailto URL
MailtoTarget->>MailtoTarget: Extract host, port, credentials<br/>from, to, cc, bcc, reply-to
MailtoTarget->>SMTPConn: Dial SMTP server
SMTPConn->>SMTPServer: TCP connect
SMTPServer-->>SMTPConn: 220 SMTP ready
MailtoTarget->>SMTPConn: Send EHLO
SMTPServer-->>SMTPConn: 250 capabilities
alt Use STARTTLS or SSL
MailtoTarget->>SMTPConn: Upgrade TLS
SMTPConn->>SMTPServer: STARTTLS/SSL handshake
SMTPServer-->>SMTPConn: TLS established
end
alt Credentials provided
MailtoTarget->>SMTPConn: AUTH PLAIN
SMTPServer-->>SMTPConn: 235 authenticated
end
loop For each recipient
MailtoTarget->>MailtoTarget: Build MIME message<br/>(subject, from, to, headers, body)
MailtoTarget->>SMTPConn: MAIL FROM
MailtoTarget->>SMTPConn: RCPT TO
MailtoTarget->>SMTPConn: DATA + message payload
SMTPServer-->>SMTPConn: 250 Message queued
end
MailtoTarget->>SMTPConn: QUIT
SMTPConn->>SMTPServer: Close connection
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Comment |
Closed
Merged
elibosley
pushed a commit
that referenced
this pull request
Jan 31, 2026
> [!IMPORTANT] > Merging this pull request will create this release ## Features - add mailto SMTP support and parity coverage (#32) Co-authored-by: knope-bot[bot] <152252888+knope-bot[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary by CodeRabbit
Release Notes
New Features
mailto:andmailtos:URL schemes, enabling SMTP-based message delivery with configurable encryption modes, authentication credentials, and multiple recipient fields (to, cc, bcc, reply-to).Tests
✏️ Tip: You can customize this high-level summary in your review settings.