你想用 [email protected] 这样的域名邮箱收发邮件吗?不想每个月给 Google Workspace 或 Zoho 交月费?用 VPS 自己搭一个邮件服务器是完全可行的。
本教程从零开始,带你用一台最便宜的 VPS 搭建完整的个人邮件服务器,支持收发邮件、Webmail 界面、防垃圾邮件。
你需要什么
| 所需物品 | 说明 | 花费 |
|---|---|---|
| 一台 VPS | 1核1GB 足够,推荐 RackNerd | $21.99/年起 |
| 一个域名 | 可以是 .com/.net/.org 等 | $10-15/年 |
| SSH 客户端 | macOS 用 Terminal,Windows 用 PuTTY | 免费 |
| 大约 2 小时 | 配置+验证+测试 | — |
⚠️ 重要提醒: 搭建邮件服务器不难,但维护邮件服务器需要持续关注。如果你只是偶尔发邮件,Google Workspace ($6/月) 或 Zoho (免费版) 可能更省心。本教程适合想完全掌控邮件系统的用户。
第 1 步:买 VPS 和准备域名
买 VPS
推荐选择 RackNerd KVM VPS 2GB ($18.29/年),配置完全够用:
- 2核 CPU
- 2GB RAM
- 35GB SSD
- 5TB 月流量
机房选洛杉矶 DC03,对亚太用户延迟最低。
准备域名 DNS
登录你的域名管理面板(Cloudflare、Namecheap 等),添加以下 DNS 记录:
| 类型 | 主机名 | 值 | TTL |
|---|---|---|---|
| A | mail.yourdomain.com | 你的 VPS IP | 3600 |
| MX | yourdomain.com | mail.yourdomain.com | 3600 |
| TXT | yourdomain.com | v=spf1 mx a ~all | 3600 |
MX 记录告诉互联网「发给 yourdomain.com 的邮件应该发到 mail.yourdomain.com」。
第 2 步:安装基础环境
SSH 登录 VPS 后执行:
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装必要工具
sudo apt install -y curl wget git net-tools
# 设置主机名(替换为你的域名)
sudo hostnamectl set-hostname mail.yourdomain.com
# 配置 hosts 文件
echo "$(curl -s ifconfig.me) mail.yourdomain.com mail" | sudo tee -a /etc/hosts
第 3 步:安装和配置 Postfix(MTA)
Postfix 是邮件传输代理,负责发送和接收邮件。
# 安装 Postfix
sudo apt install -y postfix
# 安装过程中选择:
# General type of mail configuration: Internet Site
# System mail name: yourdomain.com
编辑 Postfix 主配置文件:
sudo nano /etc/postfix/main.cf
找到并修改以下配置(保留其他默认值):
myhostname = mail.yourdomain.com
mydomain = yourdomain.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
# TLS 配置
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
# Milter(DKIM 支持)
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:/opendkim/opendkim.sock
non_smtpd_milters = local:/opendkim/opendkim.sock
重启 Postfix:
sudo systemctl restart postfix
sudo systemctl enable postfix
第 4 步:安装和配置 Dovecot(IMAP/POP3)
Dovecot 负责让用户通过邮件客户端(Outlook、Thunderbird 等)收取邮件。
# 安装 Dovecot
sudo apt install -y dovecot-core dovecot-imapd dovecot-pop3d
# 配置邮件存储格式
sudo nano /etc/dovecot/conf.d/10-mail.conf
修改以下行:
mail_location = maildir:~/Maildir
配置认证:
sudo nano /etc/dovecot/conf.d/10-auth.conf
修改:
disable_plaintext_auth = yes
auth_mechanisms = plain login
配置 SSL:
sudo nano /etc/dovecot/conf.d/10-ssl.conf
修改:
ssl = required
ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key
重启 Dovecot:
sudo systemctl restart dovecot
sudo systemctl enable dovecot
第 5 步:创建邮件用户
# 创建用户(替换 yourname 和密码)
sudo adduser yourname
# 创建 Maildir 目录
sudo -u yourname mkdir -p /home/yourname/Maildir/{cur,new,tmp}
# 测试邮件用户
echo "Test" | sudo -u yourname sendmail [email protected]
第 6 步:安装 DKIM(防止邮件被标记为垃圾邮件)
DKIM 是邮件域名密钥识别,能大幅提高邮件送达率。
# 安装 OpenDKIM
sudo apt install -y opendkim opendkim-tools
# 配置 OpenDKIM
sudo nano /etc/opendkim.conf
添加/修改:
AutoRestart yes
AutoRestartRate 10/1h
Syslog yes
SyslogSuccess yes
SignatureAlgorithm rsa-sha256
Mode sv
PidFile /var/run/opendkim/opendkim.pid
UMask 007
UserID opendkim:opendkim
Socket local:/var/spool/postfix/opendkim/opendkim.sock
生成 DKIM 密钥:
# 创建密钥目录
sudo mkdir -p /etc/opendkim/keys/yourdomain.com
# 生成密钥
sudo opendkim-genkey -D /etc/opendkim/keys/yourdomain.com -d yourdomain.com -s mail -b 2048
# 设置权限
sudo chown -R opendkim:opendkim /etc/opendkim
sudo chmod -R 700 /etc/opendkim/keys
# 创建 socket 目录
sudo mkdir -p /var/spool/postfix/opendkim
sudo chown opendkim:opendkim /var/spool/postfix/opendkim
重启服务:
sudo systemctl restart opendkim
添加 DKIM DNS 记录
查看你的 DKIM 公钥:
cat /etc/opendkim/keys/yourdomain.com/mail.txt
在域名 DNS 中添加 TXT 记录:
| 类型 | 主机名 | 值 |
|---|---|---|
| TXT | mail._domainkey.yourdomain.com | v=DKIM1; k=rsa; p=你的公钥内容(去掉引号和换行) |
第 7 步:添加 DMARC 记录
DMARC 告诉收件方如何处理未通过 SPF/DKIM 验证的邮件。
在 DNS 中添加:
| 类型 | 主机名 | 值 |
|---|---|---|
| TXT | _dmarc.yourdomain.com | v=DMARC1; p=quarantine; rua=mailto:[email protected] |
第 8 步:安装 Webmail(Rainloop)
Rainloop 是一个轻量级的 Web 邮件客户端,界面美观。
# 安装依赖
sudo apt install -y php php-fpm php-mysql php-mbstring php-xml php-curl php-zip nginx
# 下载 Rainloop
cd /var/www
sudo wget https://www.rainloop.net/latest/webmail/?type=dl&os=Linux
sudo unzip latest -d rainloop
sudo chown -R www-data:www-data rainloop
# 配置 Nginx
sudo nano /etc/nginx/sites-available/webmail
写入:
server {
listen 80;
server_name webmail.yourdomain.com;
root /var/www/rainloop;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
启用站点:
sudo ln -s /etc/nginx/sites-available/webmail /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
访问 http://webmail.yourdomain.com/?admin,默认管理员密码:12345(登录后立即修改)。
第 9 步:开放防火墙端口
# UFW 防火墙
sudo ufw allow 25/tcp # SMTP
sudo ufw allow 465/tcp # SMTPS
sudo ufw allow 587/tcp # Submission
sudo ufw allow 993/tcp # IMAPS
sudo ufw allow 995/tcp # POP3S
sudo ufw allow 80/tcp # HTTP (Webmail)
sudo ufw allow 443/tcp # HTTPS (Webmail)
sudo ufw enable
第 10 步:测试邮件收发
用命令行测试发送
echo "This is a test email from my VPS mail server." | mail -s "Test Email" [email protected]
用 Thunderbird 测试
- 下载 Mozilla Thunderbird
- 添加邮箱账户:[email protected]
- 服务器设置:
- IMAP: mail.yourdomain.com, 端口 993, SSL/TLS
- SMTP: mail.yourdomain.com, 端口 587, STARTTLS
- 用户名:yourname
检查邮件送达
# 查看邮件队列
sudo postqueue -p
# 查看邮件日志
sudo tail -f /var/log/mail.log
# 测试 SPF/DKIM/DMARC
# 发一封邮件到 https://www.mail-tester.com/,获取评分
💡 技巧: 把测试邮件发到
[email protected],它会自动返回 SPF/DKIM/DMARC 验证结果。
常见问题
Q: 发到 Gmail 的邮件进了垃圾箱怎么办?
A: 这是最常见的问题。确保:
- SPF 记录正确(
dig TXT yourdomain.com检查) - DKIM 签名生效(
opendkim-testkey -d yourdomain.com -s mail) - DMARC 记录已添加
- VPS 的 IP 没有被列入黑名单(用 MXToolbox 检查)
- 如果是新 IP,可能需要「预热」——前几周每天少量发送,逐渐增加
Q: 需要多少内存?
A: Postfix + Dovecot 基础安装占用约 200MB。加上 Rainloop 和 Nginx,总共约 500MB。1GB 内存的 VPS 绑绑有余。推荐 RackNerd 1GB ($21.99/年)。
Q: 可以收发附件吗?
A: 可以。Postfix 默认限制 10MB 附件大小,可以在 /etc/postfix/main.cf 中修改:
message_size_limit = 52428800 # 50MB
Q: 能用这个邮件服务器发营销邮件吗?
A: 技术上可以,但强烈不推荐。用个人 VPS 大量发送营销邮件会被各大邮件服务商标记为垃圾邮件发送者,IP 会被加入黑名单。营销邮件请用专业的邮件营销服务(如 Mailchimp、SendGrid)。
Q: 服务器重启后邮件服务会自动启动吗?
A: 上面的 enable 命令已经设置了开机自启。用以下命令确认:
sudo systemctl status postfix dovecot opendkim
三个服务都应该显示 active (running)。
维护建议
搭建完不等于万事大吉,邮件服务器需要持续维护:
- 定期更新系统
sudo apt update && sudo apt upgrade - 监控日志
sudo tail -f /var/log/mail.log - 检查 IP 黑名单 每周用 MXToolbox 检查一次
- 备份邮件数据
/home/*/Maildir/目录 - 更新 SSL 证书 如果用了 Let’s Encrypt,需要自动续签
总结
| 步骤 | 工具 | 耗时 |
|---|---|---|
| VPS + 域名准备 | RackNerd + Cloudflare | 15 分钟 |
| Postfix 安装配置 | APT + nano | 20 分钟 |
| Dovecot 安装配置 | APT + nano | 15 分钟 |
| DKIM + DMARC 配置 | OpenDKIM + DNS | 20 分钟 |
| Webmail 安装 | Rainloop + Nginx | 15 分钟 |
| 测试验证 | Thunderbird + mail-tester | 30 分钟 |
总耗时: 约 2 小时(不含等待 DNS 生效)
搭建完成后,你就拥有了一个完全由自己掌控的邮件系统。不依赖任何第三方服务,收发自由。
Disclaimer: Some links are affiliate links. We may earn a commission at no extra cost to you. Email server setup requires technical knowledge and ongoing maintenance. We recommend this for users comfortable with Linux server administration.
