下面给你一份从零在 Ubuntu 上搭建邮件服务器的实用指南,偏向可对外收发邮件的中小型服务器(Postfix + Dovecot + 域名配置)。如果你只是想本机发信(如 cron 通知),我也会在最后说明更简单的方式。
example.com)sudo hostnamectl set-hostname mail.example.com
在域名解析中添加:
| 类型 | 主机名 | 值 |
|---|---|---|
| A | 服务器IP | |
| MX | @ | mail.example.com |
| TXT | @ | v=spf1 mx ~all |
| TXT | _dmarc | v=DMARC1; p=none |
| TXT | 用于 DKIM(稍后生成) |
sudo apt update
sudo apt install postfix dovecot-core dovecot-imapd dovecot-pop3d \
openssl mailutils -y
Postfix 安装时选择:
example.com编辑:
sudo 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
smtpd_tls_auth_only = yes
# TLS
smtpd_tls_cert_file = /etc/ssl/certs/mail.crt
smtpd_tls_key_file = /etc/ssl/private/mail.key
smtpd_use_tls = yes
# 限制
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
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 nano /etc/dovecot/conf.d/10-ssl.conf
ssl = required
ssl_cert = </etc/ssl/certs/mail.crt
ssl_key = </etc/ssl/private/mail.key
sudo adduser user1
用户邮箱目录:
/home/user1/Maildir
sudo apt install certbot -y
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 apt install opendkim opendkim-tools
生成密钥并配置 TXT 记录(可单独说明)
sudo systemctl restart postfix dovecot
sudo systemctl enable postfix dovecot
测试:
echo "test" | mail -s "hello" user1@example.com
如果你不需要收信:
sudo apt install postfix
选择 Local only
或:
sudo apt install ssmpt
如果你愿意,我可以:
你打算用在什么场景?