在阿里云 ECS 上搭建企业级邮件服务器是一个高风险、高难度且极易失败的操作。
在 2026 年的云环境下,我必须先给你一个核心劝退建议:
⚠️ 强烈建议:不要自己在 ECS 上从零搭建邮件服务器(MTA)。
原因:
端口封锁:阿里云(及所有主流云厂商)默认封锁了 25 端口(出站和入站),这是发送邮件的核心端口。虽然可以申请解封,但审核极严,且新账号几乎不可能通过。
信誉问题:新 IP 的信誉度为 0,发出的邮件 100% 会进入 Gmail、QQ、网易的垃圾邮件箱,甚至直接被拒收。
维护地狱:你需要自己处理 SPF、DKIM、DMARC 配置,反垃圾策略,IP 预热,以及应对黑客爆破。
✅ 最佳实践方案:
ECS 部署邮件客户端/管理后台 (如 Postfix + Dovecot + Roundcube) + 对接阿里云邮件推送 (DirectMail) 或 腾讯企业邮。
即:用 ECS 做管理和存储,用大厂的通道发邮件。
如果你是为了学习技术或必须内网使用,坚持要搭建,以下是基于 Postfix + Dovecot + Roundcube 的企业级搭建流程(假设你已申请到 25 端口解封或使用 465/587 端口转发)。
🛠️ 准备阶段
ECS 配置:2核 4G 以上,Ubuntu 22.04 / Alibaba Cloud Linux 3。
域名准备:
A 记录:mail.example.com-> 指向 ECS 公网 IP。MX 记录:@-> 指向mail.example.com(优先级 10)。TXT 记录 (SPF):v=spf1 ip4:<你的ECS IP> -all(防止被当垃圾邮件)。(可选但推荐)
CNAME 记录:dkim._domainkey(用于 DKIM 签名)。已备案的域名(如
example.com)。关键解析记录(必须在 DNS 服务商处配置):
端口检查:
阿里云安全组需开放:25 (SMTP), 465 (SMTPS), 143 (IMAP), 993 (IMAPS), 80/443 (Webmail)。
注意:如果 25 端口不通,后续所有发送功能都会失效。
🚀 第一阶段:安装核心组件 (Postfix + Dovecot)
1. 更新并安装软件
apt update && apt install -y postfix dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd openssl curl
Postfix 配置:安装时会弹出配置向导。
General type: 选择
Internet Site。System mail name: 输入你的域名 (如
example.com)。
2. 配置 Postfix (SMTP 服务)
编辑 /etc/postfix/main.cf:
nano /etc/postfix/main.cf
添加/修改以下关键配置:
# 基本设置 myhostname = mail.example.com mydomain = example.com myorigin = $mydomain mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # 网络监听 inet_interfaces = all inet_protocols = ipv4 # 认证与安全 (启用 SASL 认证,关联 Dovecot) smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes # 加密传输 (SSL/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_security_level = may # 限制中继 (防止被滥用发垃圾邮件) smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
3. 配置 Dovecot (IMAP/POP3 服务)
编辑 /etc/dovecot/conf.d/10-master.conf,找到 service auth 部分,取消注释并修改,以便 Postfix 调用:
nano /etc/dovecot/conf.d/10-master.conf
service auth {
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}编辑 /etc/dovecot/conf.d/10-ssl.conf,启用 SSL(建议后期替换为 Let's Encrypt 证书):
ssl = required ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key
4. 创建邮件用户
Linux 系统用户即可作为邮件用户:
adduser user1 # 按提示设置密码,这个密码就是邮箱登录密码
5. 重启服务
systemctl restart postfix systemctl restart dovecot
🌐 第二阶段:搭建 WebMail (Roundcube)
企业用户需要一个网页版来收发邮件。
1. 安装 LAMP/LEMP 环境 (以 Nginx + PHP 为例)
apt install -y nginx php-fpm php-mysql php-gd php-intl php-pear php-imagick php-imap php-pspell php-recode php-sqlite3 php-tidy php-xmlrpc php-xsl php-zip php-curl
2. 安装 Roundcube
cd /var/www/html wget https://github.com/roundcube/roundcubemail/releases/download/1.6.5/roundcubemail-1.6.5-complete.tar.gz tar -xzf roundcubemail-1.6.5-complete.tar.gz mv roundcubemail-1.6.5 mail chown -R www-data:www-data /var/www/html/mail chmod -R 755 /var/www/html/mail
3. 配置 Nginx
创建 /etc/nginx/sites-available/mail:
server {
listen 80;
server_name mail.example.com;
root /var/www/html/mail;
index index.php;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 根据实际 PHP 版本调整
}
# 保护敏感目录
location ~ /\.ht { deny all; }
}启用站点并重启 Nginx:
ln -s /etc/nginx/sites-available/mail /etc/nginx/sites-enabled/ nginx -t && systemctl restart nginx
4. 初始化 Roundcube
浏览器访问 http://mail.example.com/installer。
按照向导检查依赖(全部绿色通过)。
配置数据库(建议使用 MySQL/MariaDB 存储会话和联系人,也可选 SQLite)。
配置 IMAP/SMTP 服务器地址:
IMAP:
localhost:993(SSL)SMTP:
localhost:465(SSL)完成安装后,务必删除
installer目录。
🔒 第三阶段:关键优化 (决定能否进收件箱)
如果不做这一步,你的邮件 100% 进垃圾箱。
1. 申请并配置 SSL 证书 (Let's Encrypt)
不要用自签名证书,浏览器会报红,邮件客户端也会报警。
apt install certbot python3-certbot-nginx certbot --nginx -d mail.example.com
Certbot 会自动修改 Nginx 配置并开启 HTTPS,同时自动续期。
2. 配置 DKIM (DomainKeys Identified Mail)
安装 OpenDKIM:
apt install opendkim opendkim-tools
生成密钥并配置 DNS TXT 记录。这步非常繁琐,需要修改 /etc/opendkim.conf 并在 DNS 添加长字符串记录。
作用:证明邮件确实是你发的,没被篡改。
3. 配置 DMARC
在 DNS 添加一条 TXT 记录:
Host:
_dmarcValue:
v=DMARC1; p=none; rua=mailto:admin@example.com作用:告诉接收方,如果 SPF 或 DKIM 失败了该怎么办。
4. 反向解析 (PTR 记录) —— 最难的一关
操作:登录阿里云 ECS 控制台 -> 网络与安全 -> 弹性公网 IP -> 申请反向解析。
要求:将你的 IP 反向解析为
mail.example.com。现状:阿里云对个人用户通常不支持自定义 PTR 记录,或者需要工单严格审核。如果没有 PTR,Gmail 和 Outlook 直接拒收。
💡 终极替代方案 (强烈推荐)
鉴于上述复杂度,企业级生产环境请采用以下架构:
前端:ECS 上运行 Roundcube (WebMail) 或 Foxmail/Outlook 客户端。
后端发送:配置 Postfix 为 Smart Host (中继) 模式。
修改
/etc/postfix/main.cf:relayhost = [smtpdm.aliyun.com]:465 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_wrappermode = yes
在
/etc/postfix/sasl_passwd填入阿里云邮件推送 (DirectMail) 的账号密码。运行
postmap /etc/postfix/sasl_passwd并重启 Postfix。优势:
无需操心 25 端口:走 465 加密端口,阿里云内部互通。
高到达率:利用阿里云的高信誉 IP 池,邮件直达收件箱。
成本低:阿里云 DirectMail 价格极低(约 ¥0.02/封),比自己维护 IP 信誉划算得多。
免运维:不用管反垃圾、IP 预热、DKIM 配置(在阿里云控制台配就行)。
总结
学习/测试:按上述步骤搭建 Postfix+Dovecot+Roundcube,注意搞定 SSL 和防火墙。
企业生产:ECS (WebMail) + 阿里云邮件推送 (SMTP 中继)。这是唯一能保证业务稳定、邮件不进垃圾箱的方案。不要试图挑战云厂商的端口限制和全球反垃圾组织的 IP 黑名单。