SMTP Relay
Send emails using standard SMTP instead of our HTTP API. Perfect for legacy systems, WordPress plugins, or any app that supports SMTP.
Connection Settings
- Host:
mx.sidemail.net - Port:
587 - Encryption: STARTTLS
- Username: Any value (e.g.,
apior empty) - Password: Your API key
Features
- Same deliverability as the HTTP API
- Verified sender validation — emails must come from verified addresses
- Attachments supported — up to 5MB total message size
- CC and BCC — fully supported
- Markdown support — send markdown emails via custom header
- Templates and scheduling — use Sidemail headers for template sends and scheduled delivery
Markdown Emails
To send markdown-formatted emails via SMTP, add the X-Sidemail-Markdown: true header to your message. When this header is present, the plain text body is treated as markdown and rendered to HTML.
Sidemail Headers
Use these optional headers to access Sidemail features over SMTP:
X-Sidemail-Markdown: true— treat the plain text body as markdown.X-Sidemail-Template-Id: 192f1f77bcf86cd799439011— send a saved template by ID.X-Sidemail-Template-Name: Welcome— send a saved template by name.X-Sidemail-Scheduled-At: 2026-05-20T09:00:00.000Z— schedule delivery with an ISO 8601 date.X-Sidemail-Open-Tracking: false— disable open tracking for this email.
When a template header is present, the SMTP message body is not used as the email content. The standard Subject header can still be used to override the template subject.
await transporter.sendMail({
from: "[email protected]",
to: "[email protected]",
subject: "Welcome to our app",
headers: {
"X-Sidemail-Template-Name": "Welcome",
"X-Sidemail-Scheduled-At": "2026-05-20T09:00:00.000Z",
"X-Sidemail-Open-Tracking": "false"
}
});
Code Examples
Limits
- 5MB maximum message size (including attachments)
- Sender address must be verified in your project
- Inline images referenced with
cid:URLs are supported when the MIME part includes a matchingContent-ID
Troubleshooting
Authentication failed
- Double-check your API key is correct
- Make sure the API key belongs to the project you're sending from
- Verify your account is active and not suspended
Sender not verified
The "From" address must be verified in your Sidemail project. Add and verify it in your dashboard under Sending Identities.
Connection timeout
- Ensure port 587 is not blocked by your firewall
- Try using a different network to rule out ISP blocking