February 2, 2026Guides
How to Set Up a Private Email Server on VPS
Complete guide to setting up your own private email server using Postfix and Dovecot on a VPS. Learn how to host your own email with full privacy and control.

Running your own email server gives you complete control over your communications, ensuring privacy and avoiding reliance on third-party providers. While it requires some technical knowledge, setting up a private email server on your VPS is entirely achievable. This guide covers setting up Postfix (SMTP) and Dovecot (IMAP/POP3) for a complete email solution.
Why Host Your Own Email Server?
- Complete privacy: Your emails are stored on your server, not scanned by third parties
- No data mining: Avoid targeted advertising based on email content
- Custom domains: Use your own domain for professional email addresses
- Unlimited accounts: Create as many email addresses as you need
- Full control: Configure spam filters, security policies, and storage limits
- Cost-effective: One server can handle multiple email accounts
Prerequisites
- VPS with at least 2GB RAM and 20GB storage
- Domain name with DNS access
- Static IP address (recommended)
- Ubuntu 20.04 or Debian 11+
- Root or sudo access
DNS Configuration
Before installing email software, configure DNS records:
- A record: mail.yourdomain.com → your server IP
- MX record: yourdomain.com → mail.yourdomain.com (priority 10)
- SPF record: TXT "v=spf1 mx a:mail.yourdomain.com ~all"
- DKIM record: Generated after installation
- DMARC record: TXT "v=DMARC1; p=none; rua=mailto:admin@yourdomain.com"
Installing and Configuring Postfix
bash
apt update
apt install -y postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql
# During installation, select 'Internet Site' and enter your domain name
# Configure Postfix main settings:
nano /etc/postfix/main.cf
# Key settings:
myhostname = mail.yourdomain.com
mydomain = yourdomain.com
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, $mydomain
inet_interfaces = all
Configuring Dovecot
bash
nano /etc/dovecot/conf.d/10-mail.conf
# Set mail location:
mail_location = maildir:/var/mail/vhosts/%d/%n
nano /etc/dovecot/conf.d/10-auth.conf
# Enable authentication:
disable_plaintext_auth = no
auth_mechanisms = plain login
systemctl restart dovecot
systemctl restart postfixSetting Up Webmail (Optional)
Install Roundcube for web-based email access:
bash
apt install -y roundcube roundcube-mysql roundcube-plugins
# Configure Roundcube during installation
# Access webmail at: https://yourdomain.com/webmailSecurity Configuration
- Enable SSL/TLS encryption for SMTP (port 587) and IMAP (port 993)
- Configure firewall to allow only necessary ports (25, 587, 993, 995)
- Set up fail2ban to prevent brute force attacks
- Use strong passwords and consider two-factor authentication
- Regularly update all email server software
- Monitor logs for suspicious activity
- Configure SPF, DKIM, and DMARC records properly
Important Tips
- Email server IPs can get blacklisted - monitor your IP reputation
- Start with a small setup and scale gradually
- Keep backups of email data and configurations
- Test email delivery to major providers (Gmail, Outlook, etc.)
- Consider using a relay service for better deliverability
- Monitor disk space - emails can consume significant storage