Running your own mail server on a cheap VPS removes per-mailbox fees entirely — a $6–$10/month instance can host unlimited addresses for one or several domains. The catch is not the server, it is deliverability. This guide covers the exact DNS records, ports, authentication settings, and monitoring needed to land in inboxes rather than spam folders, plus the arithmetic that tells you whether self-hosting is actually cheaper than a paid mail provider.
For instance sizing and current entry-level rates, see the provider comparison table.
Is Self-Hosted Email Actually Cheaper?
| Option | Cost for 10 mailboxes | Admin effort | Deliverability burden |
|---|---|---|---|
| Workspace/mail SaaS | $60–$70/month | Minimal | Provider handles it |
| Shared hosting email | $5–$15/month | Low | Shared IP reputation risk |
| Self-hosted on VPS | $6–$10/month (server) | High, ongoing | Entirely on you |
Self-hosting wins on raw cost above roughly 5 mailboxes, but only if you are willing to maintain reputation, monitor blocklists, and handle occasional delivery troubleshooting. Below that threshold, a paid provider is usually the better purchase after factoring in your time.
Minimum Specs for a Mail Server
- RAM: 1 GB works for a single domain with light traffic; 2 GB is safer with spam filtering enabled.
- CPU: 1 vCPU is sufficient. Spam scanning is the main CPU consumer.
- Storage: 20 GB minimum. Mail spools grow; plan for IMAP mailboxes to accumulate.
- IPv4: mandatory. Almost all mail servers reject connections from IPv4 addresses lacking matching reverse DNS.
- Bandwidth: low — but check the outbound policy. Some budget providers apply outbound throttling that breaks bulk sending.
If your provider bills email-related transfer at a premium or caps outbound SMTP, see budget VPS bandwidth limits explained.
The Port and Provider Checklist
Before you install anything, confirm your provider permits these. Several budget hosts block them by default on new accounts.
- Port 25 outbound — required for sending. Commonly blocked to prevent spam; must be unblocked by support ticket.
- Port 587 (submission) — usually open; needed for authenticated client sending.
- Port 993 (IMAPS) and 143 (IMAP) — inbound retrieval.
- Port 465 (SMTPS) — optional but widely supported.
- Reverse DNS (PTR) — must be set by the provider and must match your sending hostname exactly.
DNS Records You Cannot Skip
| Record | Name | Purpose |
|---|---|---|
| A | mail.example.com | Resolves your server’s IP |
| PTR | (set at provider, not registrar) | Reverse DNS match — critical |
| MX | example.com | Priority 10 → mail.example.com |
| SPF (TXT) | example.com | v=spf1 mx ~all |
| DKIM (TXT) | mail._domainkey.example.com | Signed mail; key from your MTA |
| DMARC (TXT) | _dmarc.example.com | v=DMARC1; p=none; rua=mailto:[email protected] |
Start DMARC at p=none for two weeks while collecting reports, then move to p=quarantine once you confirm legitimate mail passes SPF and DKIM.
Setup Sequence
- Point an A record for
mail.example.comat your VPS IP and wait for propagation. - Open a ticket to set PTR and unblock port 25. Verify with an external reverse-DNS lookup.
- Install a mail stack — Postfix with Dovecot is the standard pairing; add Rspamd or SpamAssassin for filtering.
- Issue TLS certificates via Let’s Encrypt for the mail hostname. Both SMTP and IMAP must be encrypted.
- Generate DKIM keys and publish the public key as a TXT record.
- Publish SPF and DMARC records as shown above.
- Create mailboxes and test with a fresh account at Gmail, Outlook, and one smaller provider.
- Submit your IP to major blocklists’ delisting forms only if you find yourself listed — a new IP may arrive pre-listed.
Ongoing Maintenance
- Weekly: check your IP against major blocklists.
- Monthly: review DMARC aggregate reports for authentication failures.
- Monthly: confirm queue length is zero — a growing queue means delivery is failing.
- Quarterly: rotate DKIM keys and verify certificate auto-renewal is working.
- Always: keep the MTA patched. A mail server is a high-value target.
When to Use a Different Provider
If your current host will not unblock port 25 or set reverse DNS promptly, self-hosting email is not viable there. A provider that treats these as standard requests — rather than exceptions — saves days of support back-and-forth. InterServer allows custom reverse DNS and supports standard mail ports on their VPS plans.
Review InterServer VPS for self-hosted email →
Bottom Line
Self-hosted email on a cheap VPS is a genuine cost win above roughly five mailboxes, but only when the provider cooperates on port 25 and reverse DNS. Verify those two things before you sign up, publish SPF/DKIM/DMARC correctly, and budget one hour a month for monitoring. Skip any one of those and your mail goes to spam, which costs more than the subscription you avoided.
