Ubuntu中如何配置邮件服务器
小樊
39
2025-12-06 09:54:37
Ubuntu 邮件服务器配置简明指南
一 架构与准备
- 组件选型:使用 Postfix 作为 MTA(发信/投递到本地)、Dovecot 提供 IMAP/POP3(收信)与 SASL(认证)。
- 服务器与网络:准备一台可公网访问的 Ubuntu 主机,开放常用端口 25/587/465/143/993/110/995;云厂商安全组与系统防火墙需同步放行。
- 域名与解析:确保域名 A 记录 指向服务器 IP,设置 MX 记录 指向你的邮件主机名(如:mail.example.com)。
- 基础环境:更新系统并安装工具(如 mailutils),便于命令行测试与排错。
二 安装与基础配置
- 安装软件包
- sudo apt update && sudo apt install postfix dovecot-core dovecot-imapd dovecot-lmtpd mailutils -y
- Postfix 基础配置(/etc/postfix/main.cf)
- myhostname = mail.example.com
- mydomain = example.com
- myorigin = $mydomain
- inet_interfaces = all
- inet_protocols = ipv4(或 all)
- mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
- mynetworks = 127.0.0.0/8 [::1]/128
- home_mailbox = Maildir/
- Dovecot 基础配置
- /etc/dovecot/dovecot.conf 或 /etc/dovecot/conf.d/10-mail.conf:mail_location = maildir:~/Maildir
- /etc/dovecot/conf.d/10-auth.conf:disable_plaintext_auth = no;auth_mechanisms = plain login
- 启用协议:protocols = imap lmtp(如需 POP3 再加 pop3)
三 安全与认证集成
- Postfix 启用 SASL(对接 Dovecot)
- smtpd_sasl_auth_enable = yes
- smtpd_sasl_type = dovecot
- smtpd_sasl_path = private/auth
- smtpd_sasl_security_options = noanonymous
- smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
- Dovecot 提供 SASL 套接字(/etc/dovecot/conf.d/10-master.conf)
- service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } }
- 可选:使用 Dovecot 的 LMTP 交付(/etc/dovecot/conf.d/10-master.conf)
- service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } }
- 提交端口与加密
- 端口 587(Submission,带 STARTTLS)用于客户端发信;端口 465(SMTPS)为隐式 TLS。
- 建议为 Postfix 配置 TLS 证书(可使用 Let’s Encrypt),并在客户端启用加密连接。
四 用户与投递方式
- 系统用户方式(简单)
- 添加用户:sudo adduser alice
- 邮箱目录自动为 ~/Maildir/(由 home_mailbox 指定)。
- 虚拟用户方式(进阶)
- 使用 MySQL 存储用户与域,Dovecot 通过 SQL 认证;创建数据库与用户并授予权限,然后在 Dovecot 配置 SQL 认证文件。适合多域名与大规模部署。
五 测试与运维
- 防火墙放行
- sudo ufw allow 25/tcp;sudo ufw allow 587/tcp;sudo ufw allow 465/tcp
- sudo ufw allow 143/tcp;sudo ufw allow 993/tcp;sudo ufw allow 110/tcp;sudo ufw allow 995/tcp
- 连通性与协议测试
- SMTP:telnet mail.example.com 25 或 openssl s_client -connect mail.example.com:25
- SMTP Submission:openssl s_client -connect mail.example.com:587 -starttls smtp
- IMAP:openssl s_client -connect mail.example.com:993
- 发送测试
- echo “Test email body” | mail -s “Test” user@example.com
- 日志与排错
- 查看 /var/log/mail.log、/var/log/dovecot.log,关注连接、认证、投递错误与黑名单提示。
- 客户端配置示例
- 发信(SMTP):服务器 mail.example.com,端口 587,加密 STARTTLS,认证 PLAIN/LOGIN,用户名 完整邮箱地址。
- 收信(IMAP):服务器 mail.example.com,端口 993,加密 SSL/TLS,用户名 完整邮箱地址。