测试 Debian 邮件服务器(如 Postfix、Dovecot 等)通常需要从 本地测试、端口连通性、发信/收信、认证、安全(TLS)、反垃圾与反病毒 等多个层面进行。下面给你一套完整、可操作的测试流程,按由简到繁排列。
systemctl status postfix
systemctl status dovecot
正常应看到 active (running)。
ss -lntp
常见端口:
25 SMTP(Postfix)465 SMTPS(可选)587 Submission(推荐)110 POP3(不推荐)143 IMAP993 IMAPSmail / mailxapt install mailutils
发送测试邮件:
echo "test mail" | mail -s "Test Subject" user@example.com
查看日志:
tail -f /var/log/mail.log
✅ 成功标志:
status=sentdeferred / bouncedtelnet localhost 25
示例交互:
EHLO test.com
MAIL FROM:<test@test.com>
RCPT TO:<user@example.com>
DATA
Hello
.
QUIT
✅ 成功:返回 250 Ok
apt install swaks
swaks --to user@example.com \
--from user@example.com \
--server localhost \
--port 587 \
--auth \
--tls
✅ 成功:
Authentication successfultelnet localhost 143
或测试加密 IMAP:
openssl s_client -connect localhost:993
示例:
. LOGIN user@example.com password
. LIST "" "*"
. SELECT INBOX
✅ 成功:返回 OK 和邮件列表
apt install mutt
mutt -f imaps://user@example.com@localhost
openssl s_client -starttls smtp -connect localhost:25
或:
openssl s_client -connect localhost:465
✅ 成功:
handshake failuredig MX example.com
dig TXT example.com
示例:
v=spf1 mx ~all
dig TXT default._domainkey.example.com
dig TXT _dmarc.example.com
spamc < test.eml
clamdscan test.eml
tail -f /var/log/mail.log
journalctl -u postfix -f
| 错误 | 原因 |
|---|---|
Relay access denied |
未开启 SMTP 认证 |
Connection refused |
端口未监听 |
TLS handshake failed |
证书问题 |
User unknown |
虚拟用户未配置 |
✅ 快速全面测试
swaks --to user@example.com \
--from user@example.com \
--server localhost \
--port 587 \
--auth \
--tls
✅ 查看日志
tail -f /var/log/mail.log
如果你愿意,我可以:
你可以直接贴出:
/etc/postfix/main.cf/etc/dovecot/dovecot.conf