Why Use SMTP?
SMTP is a good choice when:- Legacy applications — Your application already uses SMTP and changing to an HTTP API would require significant refactoring
- Framework built-ins — Your framework has built-in mail functions that expect SMTP credentials (WordPress, Django, Rails, etc.)
- Third-party integrations — You’re connecting a CMS, CRM, or other tool that only supports SMTP configuration
- Gradual migration — You’re migrating from another email provider and want to minimize code changes
If you’re building a new application or have flexibility in your stack, consider using the HTTP API or one of our SDKs instead. The API offers better error handling, request tracking, and doesn’t require maintaining a persistent connection.
Prerequisites
Before you begin, make sure you have:SMTP Credentials
Use the following settings to connect to Lettr’s SMTP server:| Setting | Value |
|---|---|
| Host | smtp.lettr.com |
| Port | 465 (recommended), 2465, 25, 587, 2587 |
| Username | lettr |
| Password | Your API key (starts with lttr_) |
Ports & Security
The port you choose determines the security protocol for your SMTP connection:| Type | Ports | Security |
|---|---|---|
| SMTPS | 465, 2465 | Implicit TLS — establishes a secure connection immediately |
| STARTTLS | 25, 587, 2587 | Explicit TLS — starts unencrypted, then upgrades to a secure connection |
Quick Test with swaks
Verify your SMTP connection usingswaks (Swiss Army Knife for SMTP):
Framework Integration Guides
Choose your framework or library for specific setup instructions:Laravel
Configure Laravel’s mail system with SMTP
PHPMailer
Send emails with PHPMailer
Supabase
Send Supabase Auth emails through Lettr
Troubleshooting
Authentication Failed
Authentication Failed
If you see “Authentication failed” or “535 Authentication credentials invalid”:
- Verify your API key is correct and starts with
lttr_ - Check that the username is exactly
lettr(lowercase) - Ensure your API key hasn’t been revoked in the dashboard
Connection Timeout
Connection Timeout
If the connection times out:
- Check your firewall isn’t blocking outbound connections on the SMTP port
- Try alternate ports (
2465or2587) - Verify
smtp.lettr.comresolves correctly:nslookup smtp.lettr.com
TLS/SSL Errors
TLS/SSL Errors
If you see TLS or SSL handshake errors:
- Ensure you’re using the correct encryption setting for your port (implicit TLS for 465, STARTTLS for 587)
- Update your TLS/SSL libraries if you’re using older versions
- Some older SMTP clients may not support modern TLS versions — consider upgrading or using the HTTP API instead
SMTP vs API
Here’s a quick comparison to help you decide:| Feature | SMTP | HTTP API |
|---|---|---|
| Setup complexity | Low — standard SMTP config | Medium — requires SDK or HTTP client |
| Error handling | Limited — SMTP status codes only | Rich — detailed JSON error responses |
| Request tracking | No request ID returned | Returns request_id for tracking |
| Attachments | Standard MIME encoding | Base64 in JSON payload |
| Templates | Not supported | Full template support |
| Metadata | Not supported | Custom metadata supported |
| Webhooks | Not supported | Full event tracking |
| Performance | Slower — persistent connection overhead | Faster — single HTTP request |
Both SMTP and the HTTP API deliver emails with the same reliability and deliverability. The choice depends on your application’s needs and existing infrastructure.