在 Ubuntu 上测试邮件服务器功能,通常分为本地服务可用性测试、发信测试、收信测试以及外部连通性测试。下面按常见场景一步步说明(以 Postfix 为例,也适用于 Exim / Sendmail)。
systemctl status postfix
# 或
service postfix status
若未安装:
sudo apt update
sudo apt install postfix mailutils
mail 命令echo "测试邮件内容" | mail -s "测试主题" root
查看本地邮件:
mail
或
cat /var/mail/root
✅ 成功标志:能收到邮件,无报错
echo "hello" | mail -s "test" 用户名
查看:
cat /var/mail/用户名
echo "外发测试" | mail -s "Ubuntu Mail Test" you@example.com
查看邮件队列:
mailq
查看日志:
tail -f /var/log/mail.log
常见问题:
telnet localhost 25
输入:
HELO test.com
MAIL FROM: test@localhost
RCPT TO: root@localhost
DATA
Subject: Telnet Test
Hello from telnet
.
QUIT
✅ 成功:日志中出现邮件入队
telnet smtp.gmail.com 587
(需 STARTTLS,复杂一些,建议用 swaks)
安装:
sudo apt install swaks
测试发信:
swaks --to you@example.com --from test@yourdomain.com \
--server localhost --subject "swaks test"
测试外部 SMTP 账号:
swaks --to you@example.com \
--from you@gmail.com \
--server smtp.gmail.com:587 \
--tls --auth LOGIN \
--auth-user you@gmail.com \
--auth-password 应用专用密码
安装:
sudo apt install dovecot-imapd dovecot-pop3d
测试 IMAP:
telnet localhost 143
或:
openssl s_client -connect localhost:993
dig MX yourdomain.com
dig TXT yourdomain.com
确保:
| 问题 | 排查 |
|---|---|
| 发不出去 | mailq + /var/log/mail.log |
| 被拒收 | 检查 SPF/DKIM |
| 端口不通 | telnet mx 25 |
| 云服务器 | 25 端口常封,用 465/587 |
如果你愿意,可以告诉我:
我可以给你一套针对性测试方案。