服务器邮件服务器自建:手把手教你在服务器上自建邮件服务器(零

前置准备


在开始服务器邮件服务器自建之前,你需要确保以下条件满足:



  • 一台公网服务器(建议 2GB 内存以上,CentOS 7/8、Ubuntu 20.04+ 或 Debian 11+)。

  • 一个已解析的域名(例如 example.com),并添加 A 记录指向服务器 IP。

  • 服务器开放端口:25(SMTP)、143(IMAP)、587(SMTP 提交)、993(IMAPS)、465(SMTPS)。

  • 确保服务器 25 端口未被云厂商屏蔽(部分厂商默认封禁,需提工单解封)。

  • 已安装宝塔面板(或纯命令行),本文主要基于命令行,宝塔用户可参考路径。


分步操作


第一步:更新系统并安装依赖


# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
sudo apt install -y postfix dovecot-core dovecot-imapd dovecot-pop3d opendkim opendkim-tools

CentOS/RHEL

yum update -y
yum install -y postfix dovecot opendkim opendkim-tools


第二步:配置 Postfix(发送邮件)


编辑主配置文件 /etc/postfix/main.cf,替换关键参数(以下为示例):


# 备份原文件
cp /etc/postfix/main.cf /etc/postfix/main.cf.bak

修改以下内容(将 example.com 替换为你的域名):


myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP

添加以下行以支持认证和 TLS

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_use_tls = yes
smtp_tls_security_level = may


说明:TLS 证书可使用 Let's Encrypt 免费申请,参考后续步骤。

第三步:配置 Dovecot(接收邮件)


编辑 /etc/dovecot/dovecot.conf,确保包含以下内容:


protocols = imap pop3
listen = *
ssl = required
ssl_cert = ssl_key = disable_plaintext_auth = yes
auth_mechanisms = plain login
mail_location = maildir:/var/mail/vhosts/%d/%n

/etc/dovecot/conf.d/10-mail.conf 中设置邮箱路径格式:


mail_location = maildir:/var/mail/vhosts/%d/%n

创建邮件存储目录并授权:


sudo mkdir -p /var/mail/vhosts/example.com
sudo groupadd -g 5000 vmail
sudo useradd -g vmail -u 5000 vmail -d /var/mail/vhosts -s /sbin/nologin
sudo chown -R vmail:vmail /var/mail/vhosts

第四步:申请 SSL 证书(免费)


sudo apt install certbot -y
sudo certbot certonly --standalone -d mail.example.com

证书生成后,路径为 /etc/letsencrypt/live/mail.example.com/


第五步:启动服务并设置开机自启


sudo systemctl restart postfix dovecot
sudo systemctl enable postfix dovecot
sudo systemctl status postfix dovecot

避坑指南



  • 25 端口被封:很多云厂商默认屏蔽 25 端口,需提交工单解封,否则无法发送邮件到外部。

  • 反向 DNS(PTR)记录:为提升投递率,建议在域名管理后台为服务器 IP 设置 PTR 记录,指向 mail.example.com

  • DKIM/SPF 配置:未配置 SPF 和 DKIM 会导致邮件被丢进垃圾箱。SPF 记录添加:v=spf1 mx ~all;DKIM 配置略复杂,可参考宝塔面板“邮件管理”功能一步搞定。

  • 防火墙放行:检查 ufw/iptables 是否放行 25/143/587/993 端口。


高频问题解答


Q1:自建邮件服务器后,发送给 QQ 邮箱被退信怎么办?

A:检查是否配置了 SPF/DKIM 记录;确认 25 端口通畅;确保 PTR 记录与域名匹配。多数退信是反垃圾策略导致。


Q2:宝塔面板有自建邮件服务器功能?

A:宝塔面板 7.x 版本集成了“邮件服务器”插件,可一键安装 Postfix+Dovecot,但仍需手动配置 SSL 证书和 DNS 解析。


Q3:如何创建邮箱账号?

A:直接使用系统用户:useradd -m -s /sbin/nologin user@example.com 并设置密码即可,但推荐使用虚拟用户方式(配合 MySQL),高端玩法可查。


Q4:如何测试邮件服务器是否正常?

A:使用 telnet 测试端口连通性,或登录邮箱客户端(如 Thunderbird)添加账号发送测试邮件。


效果验证



  1. 检查端口监听


   sudo netstat -tulpn | grep -E '25|143|587|993'

应看到 postfix 监听 25,dovecot 监听 143、993 等。



  1. 邮件发送测试


使用 echo "测试邮件正文" | mail -s "测试标题" your_email@qq.com 发送,并到 QQ 邮箱检查是否收到。



  1. 客户端收发测试


在邮箱客户端(如 Thunderbird)配置:



  • 接收服务器:mail.example.com,协议 IMAP(端口 993,SSL)

  • 发送服务器:mail.example.com,端口 587,STARTTLS

  • 账号:user@example.com


若一切正常,恭喜你服务器邮件服务器自建成功!

遇到异常时优先回顾“避坑指南”部分,多数问题都能解决。

分享到:
上一篇
Docker部署Nginx反向代理:从零搭建也能快速上手
下一篇
宝塔面板对接阿里云OSS,手把手远程存储配置教程
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意