Self-Hosting·9 min read·

Self-Hosted Email With Mailcow: An Honest Overview

Evaluate the real cost of running Mailcow on a VPS, from the Postfix and Rspamd stack to deliverability, DNS records, and IP reputation challenges.

NB

Netbay Infrastructure Team

Netbay Engineering

On this page

Email is the one service everyone eventually wants to self-host, and the one they most often regret. Mailcow is the most polished all-in-one self-hosted mail suite: it packages Postfix, Dovecot, Rspamd, SOGo groupware, and a web UI into a single Docker Compose bundle. The software side is genuinely excellent. The hard part is reputation and deliverability, which has nothing to do with your code.

Most people start with idealistic reasons — control, privacy, cost — and run into the reality that mail providers are cautious about unknown servers. That is not a reason to give up; it is a reason to understand the operational workload before you commit.

This guide gives an honest deployment overview of Mailcow, the stack it brings, and the operational realities that decide whether self-hosted email actually works for you.

Mailcow deliverability flow outbound SMTP Postfix Rspamd filter + DKIM sign internet recipient MX check SPF, DKIM, DMARC, PTR published in DNS - decisive for delivery warm-up + monitoring build IP reputation gradually

What Mailcow Actually Deploys

When you start Mailcow you get an integrated mail system inside one Compose project:

text
- Postfix    : SMTP delivery and receiving
- Dovecot    : IMAP/POP3 and storage
- Rspamd     : spam filtering and DKIM signing
- SOGo       : webmail and calendars
- ClamAV     : virus scanning (optional, memory heavy)
- Watchdog   : monitors and restarts failing containers

You manage domains, mailboxes, aliases, and DKIM from a single administration UI. Provisioning a new mailbox is a few clicks, and account data lives entirely under one directory for easy backup.

Because everything is containerized, a corrupted container is not a data-loss event: the mail storage and configuration live in volumes that survive a container restart, and Mailcow includes a watchdog that monitors each service and restarts the ones that fail. That operational design is why the software part of self-hosted mail rarely hurts anyone; the deliverability layer is the part you must own.

The Honest Deployment Story

Renting a domain and a server is minutes of work; keeping mail flowing is a career. The reasons self-hosted mail fails are almost never the software:

  • IP reputation: freshly assigned IPs are often pre-warmed or blocked until you demonstrate good sending behavior.
  • Reverse DNS (PTR): many providers reject mail from hosts without a matching PTR record; you must set it with your host for a static IP.
  • SPF, DKIM, DMARC: you must publish all three records correctly or you will be flagged as spoofing yourself.
  • Warm-up: new domains need gradual send volume to build trust with Gmail and Outlook.

Deploy only if you accept maintaining these records and monitoring bounces daily at first.

A useful mental model: every mail provider judges your server by your past behavior, and a brand-new IP has no behavior at all, so it starts on probation. Sending small volumes to honest recipients, keeping your rDNS aligned, and never using the address for spam slowly builds a clean history. The moment you appear on a blocklist, the fix is the same discipline applied for longer, not a different technical trick.

This is why self-hosted email is a commitment, not a one-off: the infrastructure runs itself, but the reputation is something you maintain week after week, like warming up a new domain with gradual, legitimate volume.

Deploying With the Official Script

Netbay VPSes come with a static IP, which is the single most important ingredient. Install with the official one-liner and pick your hostname during setup:

bash
curl -sS -L https://setup.mailcow.email | bash -s -- -h mail.example.com
# The wizard asks for your mail hostname; use a dedicated subdomain, not the apex.

Mailcow writes mailcow.conf and all containers under /opt/mailcow-dockerized. Everything, including DKIM keys, lives under that directory for easy backup.

Getting Deliverability Right

The essential DNS records for a mail domain:

text
; DNS zone entries that mail providers check
mail.example.com.  A     203.0.113.10
mail.example.com.  MX    10 mail.example.com
example.com.       TXT   "v=spf1 mx -all"
mail.example.com.  PTR   203.0.113.10   (set at your host)
mail._domainkey.example.com. TXT "v=DKIM1; k=rsa; p=..."
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:admin@example.com"

Set the PTR record with Netbay's support for your static IP, then publish the DKIM selector Mailcow generated. Start DMARC in p=none and tighten only after you see real mail flowing through inspection.

Takeaway

Mailcow is excellent software, and the mail stack fits on a modest VPS, but successful self-hosted email is 20 percent install and 80 percent DNS, reputation, and monitoring discipline. Do it for control and privacy, with static IP, warm-up, and backups in place.

For a self-hosted mail box you want a reliable static-IP Ubuntu instance; Netbay gives you that with High-Speed SSD storage at netbayhosts.in.

Keep reading

Follow along on a real VPS

Deploy Linux in under 60 seconds

These guides are written against Ubuntu, Debian, and RHEL-family images — the same ones on NetBay.

Deploy an instance