在 Ubuntu 上搭建邮件服务器通常涉及 Postfix(MTA)+ Dovecot(IMAP/POP3)+ 数据库/系统用户 等组件。下面我给你一个从零开始、可联网收发邮件的实用搭建方案(以 Ubuntu 22.04/24.04 为例)。
example.com)sudo hostnamectl set-hostname mail.example.com
在你的域名 DNS 中添加:
A 记录
mail.example.com -> 你的服务器IP
MX 记录
example.com -> mail.example.com
SPF(TXT)
example.com TXT "v=spf1 mx -all"
DKIM / DMARC(后续配置)
sudo apt update
sudo apt install postfix dovecot-core dovecot-imapd dovecot-pop3d \
mailutils openssl
Postfix 安装时选择:
example.comsudo nano /etc/postfix/main.cf
关键配置:
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 启用 SMTP 认证
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
# TLS
smtpd_tls_cert_file = /etc/ssl/certs/mail.crt
smtpd_tls_key_file = /etc/ssl/private/mail.key
smtpd_use_tls = yes
sudo nano /etc/dovecot/dovecot.conf
protocols = imap pop3
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 = no
auth_mechanisms = plain login
sudo nano /etc/dovecot/conf.d/10-master.conf
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
sudo adduser user1
邮箱地址:user1@example.com
可配合 MySQL / PostgreSQL(较复杂,可后续扩展)
sudo apt install certbot
sudo certbot certonly --standalone -d mail.example.com
配置路径:
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
sudo systemctl restart postfix
sudo systemctl restart dovecot
sudo systemctl enable postfix dovecot
echo "test" | mail -s "Hello" user1@example.com
mail.example.com 993mail.example.com 587user125 SMTP
587 Submission
465 SMTPS
993 IMAPS
995 POP3S
sudo apt install opendkim opendkim-tools
DNS 添加:
_dmarc.example.com TXT "v=DMARC1; p=none"
❌ 收不到外网邮件
✅ 检查 MX、25 端口、防火墙
❌ 被 Gmail 拒收
✅ 配置 SPF / DKIM / 反向解析
❌ 登录失败
✅ 检查 Dovecot auth socket 权限
如果你愿意,我可以:
你现在是 学习 / 生产 / 内网使用?