How to turn your VPS into an email sending server

To turn a VPS into an email sending server you need a host that allows outbound port 25, a domain, a mail hostname with matching reverse DNS, and SPF, DKIM and DMARC records. Install an MTA such as TurboMTA, send test mail, then warm the IP up gradually before you raise volume.

Get free setup help See pricing

Before you start: what you need

  • A VPS or PC with a static public IPv4 address (a dedicated IP, not shared NAT).
  • Outbound port 25 open. Many providers block it by default; see our guide on getting it unblocked.
  • A domain you control and can edit DNS for, and a hostname for the mail server such as mail.example.com.
  • At least 2 GB of RAM is what we recommend for TurboMTA; more for large queues.
  • Recipients who have opted in. Our acceptable-use policy applies to every licence.

Step 1. Choose the server and check port 25

Pick a provider that documents port 25 as open or will unblock it on request, and ask for a clean IP with no blocklist history. From the VPS, test a connection to a public mail server on port 25 before you buy anything else.

If port 25 cannot be opened, you can still use TurboMTA behind a relay on ports 587 or 465, but direct delivery from your own IP is what gives you full control.

Step 2. Set the DNS records

RecordName (example)Example valueWhy it matters
Amail.example.com203.0.113.10The hostname your server announces
PTR (reverse DNS)203.0.113.10mail.example.comSet in your provider's panel; must match the A record
SPF (TXT)example.comv=spf1 ip4:203.0.113.10 -allLists the IPs allowed to send for the domain
DKIM (TXT)selector1._domainkey.example.comv=DKIM1; k=rsa; p=...Public key that proves messages were signed by you
DMARC (TXT)_dmarc.example.comv=DMARC1; p=none; rua=mailto:dmarc@example.comTells receivers what to do and where to send reports

Use documentation placeholders below and replace them with your own values. Allow time for DNS to propagate before you test.

Step 3. Install TurboMTA and add a sending identity

TurboMTA runs on Linux (systemd, DEB and RPM packages) and Windows. After installing, you create a VirtualMTA for your IP and hostname, generate a DKIM key for your sending domain, and create an SMTP user or API key for your application. Free setup is included: share SSH access in a ticket and we do this with you.

Use the real-time dashboard to watch the queue and delivery state from the first message.

Step 4. Send test mail and read the headers

Send to a test inbox you control and open the original message headers. You want to see spf=pass, dkim=pass and dmarc=pass. If any fail, fix DNS before you send to real recipients.

  • Check that the HELO name, PTR and A record all match.
  • Check the IP is not on a major blocklist before you start.
  • Start with a small, engaged list, not your whole database.

Step 5. Warm up, then scale

A new IP has no reputation. Start at a few dozen emails a day and raise the volume gradually while bounces and complaints stay low. Use per-domain rate limits so Gmail, Yahoo and Outlook each get a pace they accept. Our warm-up schedule gives a conservative starting plan.

Step 6. Monitor and keep the list clean

  • Watch bounces, deferrals and the suppression list in the dashboard and remove hard bounces immediately.
  • Add a one-click unsubscribe header to marketing mail and honour requests quickly.
  • Read your DMARC reports to spot anyone spoofing your domain.

Keep reading

Frequently asked questions

Do I need an SMTP relay or can I send directly from my VPS?

You can send directly if your VPS provider allows outbound port 25 and you set up reverse DNS, SPF, DKIM and DMARC. If port 25 is blocked and cannot be unblocked, you either change provider or relay through another service on port 587 or 465. TurboMTA works for both.

Does it handle SPF, DKIM and DMARC?

TurboMTA signs mail with DKIM and guides you through the SPF, DMARC and reverse-DNS (PTR) records that mailbox providers expect. DNS changes are made by you or, with the free setup, through a support ticket. Correct records improve deliverability but never guarantee it.