Mail server VPS with port 25 open
Your own mail server needs port 25 and a matching reverse DNS. Many hosts block the first and keep the second to themselves, here you get both.
A self-hosted mail server sends and receives email for your own domain, so your messages sit on your server and not at a big provider. Bulletproof.to keeps port 25 open in both directions and lets you set the reverse DNS of your IPv4 in the panel, on a KVM VPS from €22.99 a month, paid in crypto and without ID.
What it needs
- Memory
- 6 GB RAM or more
- Disk
- 40 GB or more
- System
- Debian 13
- Smallest plan
- Steel, €22.99 / mo
mailcow asks for at least 6 GB of RAM plus swap, and 8 GB of RAM for about 5 to 10 users. Mailu runs in 1 GB without the virus scanner if you want a smaller plan.
Ports to open
| Port | Used for | Open to |
|---|---|---|
| 25/tcp | Mail between servers (SMTP) | Everyone |
| 465/tcp, 587/tcp | Sending from your mail apps | Everyone |
| 993/tcp | Reading mail (IMAP over TLS) | Everyone |
| 80/tcp, 443/tcp | Webmail, admin panel and certificates | Everyone |
| 22/tcp | SSH | Only you |
Set these in the free firewall in the panel, everything else stays closed.
Install your mail server
1. Set the reverse DNS of the server IPv4 to mail.yourdomain in our panel, then add the A, MX, SPF, DKIM and DMARC records at your DNS
2. Install the tools mailcow needs and Docker
apt install -y git openssl curl gawk coreutils grep jq curl -sSL https://get.docker.com/ | CHANNEL=stable sh apt install -y docker-compose-plugin3. Download mailcow and create its configuration
umask 0022; cd /opt git clone https://github.com/mailcow/mailcow-dockerized cd mailcow-dockerized ./generate_config.sh4. Our servers are IPv4 only, so turn IPv6 off in mailcow
sed -i 's/^ENABLE_IPV6=.*/ENABLE_IPV6=false/' mailcow.conf5. Start it, then open https://mail.yourdomain and change the admin password
docker compose pull docker compose up -d
Commands from the official mailcow docs, checked in November 2026. The project may change them, so look there if one fails.
Why run your mail server here
Port 25 open
Inbound and outbound, no ticket and no waiting period.
Your own reverse DNS
Set the PTR record of your IPv4 in the panel, so receiving servers trust your mail.
A firewall Docker cannot bypass
Our firewall sits outside the server, so Docker rules inside it never open more than you allow.
Mail that is yours
No KYC and crypto payment, and your mailboxes live on a server only you can log in to.
Plans that fit
| Plan | vCPU | RAM | NVMe | Port | Per month |
|---|---|---|---|---|---|
| Steel | 2 | 6 GB | 40 GB | 1 Gbps | €22.99 |
| Cobalt | 4 | 8 GB | 60 GB | 2.5 Gbps | €29.99 |
| Chrome | 6 | 12 GB | 80 GB | 2.5 Gbps | €39.99 |
| Titanium | 8 | 16 GB | 100 GB | 5 Gbps | €49.99 |
| Tungsten | 12 | 20 GB | 120 GB | 5 Gbps | €59.99 |
| Carbide | 14 | 24 GB | 140 GB | 10 Gbps | €69.99 |
| Graphene | 16 | 32 GB | 160 GB | 10 Gbps | €79.99 |
Monthly prices. Pay for 3 months and save 5%, or 12 months and save 15%. Upgrade to a bigger plan from the panel any time.
Questions about hosting a mail server
Is port 25 really open?
Yes, in both directions on every VPS. Sending spam is still against our acceptable use policy.
Can I set reverse DNS (PTR)?
Yes, in the panel for the server IPv4. Set it to the same name as your mail host, for example mail.yourdomain.
Why does my mail land in spam?
Usually a missing or wrong PTR, SPF, DKIM or DMARC record. A new IP also needs some time and some normal mail before big providers trust it.
Can I run mailcow on 2 GB?
No, mailcow needs 6 GB or more. Mailu or Stalwart are lighter if you want a smaller plan.
Do you need my ID or name?
No. You sign up with an account number, no email or ID is required, and you pay with Monero, Bitcoin, USDT or Litecoin.
Do you install it for me?
No, you get a clean server with full root access and install it yourself with the steps on this page. Support helps with the server, not with the app.
Need somewhere for the DNS records? Our DNS hosting is free for any domain.