Solution

VPS for a self-hosted mail server (Postfix, Mailcow, Stalwart)

Cutter 8 · $34/moCutter 16 · $62/mo
Short answer

Self-hosting mail needs three things most providers do not give you: outbound port 25 open, self-service reverse DNS, and address space with no spam history. Two cores and 4 GB run Mailcow for a small team, 8 GB if you want full-text search. Deliverability, not hardware, is the hard part — set SPF, DKIM and DMARC before you send a single message.

What you need

Specification floor for self-hosted mail server
ResourceWhat you actually need
CPU2 cores for a small team, 4 for 50+ mailboxes
RAM4 GB minimum for Mailcow; 8 GB with Solr search
Disk160 GB NVMe and up, sized to your archive
NetworkPort 25 outbound, static IPv4, self-service PTR

Recommended plans

Cutter

Cutter 8

$ 34 /month
vCPU
4 × dedicated
RAM
8 GB
Storage
160 GB NVMe SSD
Transfer
10 TB
IPv4 / IPv6
1 / /64 routed
Configure
Cutter

Cutter 16

$ 62 /month
vCPU
6 × dedicated
RAM
16 GB
Storage
320 GB NVMe SSD
Transfer
15 TB
IPv4 / IPv6
1 / /64 routed
Configure

Recommended locations

Location is usually the decision that matters most for this workload — either because latency dominates, or because jurisdiction does.

Why OnionVPS for this

  • Outbound port 25 is open by default — you do not have to ask, and there is no probation period.
  • Reverse DNS is set from the panel in seconds; receivers reject mail without a matching PTR.
  • Our IPv4 space is not recycled from previous abuse tenants, so you start with clean reputation.
  • Swiss and Icelandic locations put stored mail under statutory correspondence protection.

How to set it up

  1. Deploy a Cutter 8 and set the hostname

    mail.example.com, matching what you will publish in DNS.

  2. Set reverse DNS from the panel

    The PTR record must resolve back to the same hostname or most receivers will reject you.

  3. Install Mailcow or Stalwart

    Both ship a complete stack; Stalwart is a single Rust binary if you prefer less Docker.

  4. Publish SPF, DKIM and DMARC

    Start DMARC at p=none, read the reports for a fortnight, then move to p=quarantine.

  5. Warm the IP up gradually

    A few dozen messages a day for the first week. Volume spikes from a new IP look exactly like a spam run.

Frequently asked questions

Is port 25 open on your VPS?

Yes, outbound port 25 is open on every instance by default. We do not require a support ticket, an account age, or a paid add-on to unblock it.

Can I set reverse DNS (PTR) myself?

Yes, for both IPv4 and IPv6, directly from the control panel. Changes propagate within a few minutes.

Will my mail land in spam?

Not if you configure SPF, DKIM, DMARC and a matching PTR, and warm the address up. Those four things account for the overwhelming majority of deliverability problems.