SMTP Configuration
SendDock uses the BYO-SMTP (Bring Your Own SMTP) model, which means that you provide the email sending provider. This gives you total control over your IP reputation, deliverability, and sending costs.
Why BYO-SMTP?
Advantages
✅ Total Control: You manage your domain and IP reputation ✅ No Vendor Lock-in: You can change providers whenever you want ✅ Predictable Costs: You pay directly to your SMTP provider, not SendDock for volume ✅ Better Deliverability: Your own verified domain = better reputation ✅ Flexibility: Use different SMTPs for different projects
Disadvantages
❌ Need to configure and maintain the relationship with the SMTP provider ❌ Must manage your own sending reputation ❌ SMTP costs are additional to SendDock
For most projects, we recommend AWS SES (super economical) or Resend (easier to configure).
Supported Providers
SendDock works with any standard SMTP provider. The most popular are:
| Provider | Difficulty | Cost | Best For |
|---|---|---|---|
| Resend | ⭐ Easy | $20/mo for 50k | Startups, rapid development |
| Hostinger | ⭐ Easy | $3-10/mo | Blogs, small projects |
| AWS SES | ⭐⭐⭐ Complex | $0.10 per 1,000 | High volume, low cost |
| SendGrid | ⭐⭐ Medium | $20/mo for 50k | Marketing and transactional |
| Mailgun | ⭐⭐ Medium | $35/mo for 50k | Developers, API-first |
| Generic SMTP | ⭐ Easy | Varies | Any provider |
Basic Configuration
Step 1: Get SMTP Credentials
From your provider you need:
Host: smtp.example.com
Port: 587 (or 465, 25)
Username: your-username
Password: your-password
Step 2: Configure in SendDock
- Go to Dashboard → SMTP Settings
- Click "Add SMTP Provider"
- Complete the form:
Fields:
- Provider Name: A descriptive name (e.g., "AWS SES Production")
- Host: The SMTP server
- Port: Port (587 recommended for TLS)
- Username: Your SMTP username
- Password: Your SMTP password
- From Email: Email that will appear as sender
- From Name: Name that will appear as sender
- Encryption: TLS (recommended) or SSL
Step 3: Verify Configuration
SendDock includes a Connection Test:
- Complete all fields
- Click "Test Connection"
- SendDock will try to connect and send a test email
- If it works, you'll see ✅ "Connection successful"
- If it fails, you'll see the specific error for debugging
Common SMTP Ports
| Port | Description | Security | Recommended Use |
|---|---|---|---|
| 587 | Submission port | STARTTLS | ✅ Recommended |
| 465 | SMTP over SSL | SSL/TLS | ✅ Secure alternative |
| 25 | Traditional SMTP | None | ⚠️ Server-to-server only |
| 2525 | Alternative | STARTTLS | ✅ If 587 is blocked |
Port 25 is usually blocked by hosting providers. Use 587 or 465 instead.
Encryption Types
TLS (STARTTLS)
- Starts without encryption then upgrades to TLS
- Port: 587 or 2525
- Recommended for being more compatible
SSL
- Encrypted connection from the start
- Port: 465
- More secure but less compatible with some providers
None (No encryption)
- ⚠️ Not recommended
- Only for local development or testing
- Never in production
Advanced Configuration
Multiple SMTP Providers (Pro+ Plan)
With the Pro plan or higher, you can configure multiple SMTP providers:
Use cases:
- Automatic Failover: If the primary fails, use the backup
- Segmentation: Different SMTP for transactional vs marketing
- A/B Testing: Compare deliverability between providers
- Limits: Distribute load among multiple providers
Configure Failover
- Add your primary SMTP (Priority: 1)
- Add a backup SMTP (Priority: 2)
- Optionally a third backup (Priority: 3)
When SendDock tries to send:
Attempt 1: SMTP Priority 1
↓ (if fails)
Attempt 2: SMTP Priority 2
↓ (if fails)
Attempt 3: SMTP Priority 3
↓ (if fails)
Error reported
- SMTP 1: AWS SES (economical, high volume)
- SMTP 2: Resend (more expensive but super reliable)
- SMTP 3: SendGrid (final backup)
Domain Verification
For better deliverability, you must verify your domain with your SMTP provider.
Required DNS Records
Typically you need to configure:
SPF Record
TXT @ "v=spf1 include:_spf.example.com ~all"
DKIM Record
TXT default._domainkey "v=DKIM1; k=rsa; p=MIGfMA0GCS..."
DMARC Record
TXT _dmarc "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"
Each provider has its own verification process. Check our specific guides:
Email "From" Address
The sender email must comply with these rules:
✅ Must be verified in your SMTP provider
✅ Use your own domain (e.g., hello@myapp.com)
❌ DO NOT use gmail.com, yahoo.com, outlook.com
❌ DO NOT use noreply@ (looks like spam)
Good examples:
hello@myapp.com
team@myapp.com
notifications@myapp.com
john@myapp.com
Bad examples:
noreply@myapp.com (Looks like spam)
info@gmail.com (Can't verify public domains)
DoNotReply@example.com (Don't be hostile)
From Name
The "From Name" is the name the recipient sees:
Good examples:
John from MyApp
MyApp Team
MyApp Notifications
MyApp Newsletter
Bad examples:
No Reply (Impersonal)
info@myapp.com (Repeats email)
Credential Security
Encryption
SendDock encrypts your SMTP credentials with AES-256 before saving them in the database.
- ✅ Passwords are encrypted immediately
- ✅ Only decrypted in memory when sending
- ✅ SendDock admins CANNOT see your credentials
- ✅ In backups, credentials remain encrypted
Best Practices
- Don't share credentials between projects if not necessary
- Rotate passwords every 3-6 months
- Use SMTP keys (API keys) instead of passwords when possible
- Revoke access immediately if a team member leaves
Rate Limits
Each SMTP provider has sending limits:
| Provider | Limit per Second | Daily Limit |
|---|---|---|
| AWS SES (sandbox) | 1 email/sec | 200/day |
| AWS SES (production) | 14 emails/sec | According to your quota |
| Resend (Free) | - | 100/day |
| Resend (Paid) | - | 50,000+/day |
| SendGrid | Varies | According to plan |
| Hostinger | ~100/hour | ~1,000/day |
SendDock will try to respect provider limits, but you're responsible for monitoring your usage to avoid suspensions.
Monitoring and Logs
View SMTP Status
In Dashboard → Logs, you can see:
- ✅ Successful sends
- ❌ SMTP connection errors
- ⚠️ Warnings (soft bounces, delays)
- 📊 Usage statistics by provider
Common Errors
| Error | Cause | Solution |
|---|---|---|
535 Authentication failed | Incorrect credentials | Verify username and password |
Connection timeout | Firewall or blocked port | Try port 2525 or 465 |
550 Relay not permitted | Unverified email | Verify your domain in the provider |
Daily sending quota exceeded | Limit reached | Wait 24hrs or upgrade plan |
Change SMTP Provider
You can change your provider at any time:
- Configure the new SMTP
- Test that it works with "Test Connection"
- Mark the new one as Default
- Optionally delete the old one
Changing SMTP doesn't affect your subscribers, templates, or statistics. It only changes how future emails are sent.
SMTP Debugging
If emails aren't sending:
1. Verify Connection
# Manual test with telnet
telnet smtp.example.com 587
2. Check SendDock Logs
In Dashboard → Logs, look for:
- Specific error messages
- Timestamps of failed attempts
3. Check SMTP Provider
Enter your provider's dashboard and verify:
- Is your account active?
- Have you reached any limits?
- Is your domain verified?
- Are there security alerts?
4. Test from Command Line
# Test SMTP with OpenSSL
openssl s_client -starttls smtp -connect smtp.example.com:587
Next Steps
Configure your specific SMTP provider:
- Resend (Recommended to start)
- AWS SES (Recommended for volume)
- Hostinger (For small blogs)
- SendGrid (Full-featured)
- Mailgun (API-first)
- Generic SMTP (Any provider)
Or continue with: