在 Ubuntu 上测试邮件发送功能,常见做法有 命令行测试、使用邮件服务器、使用脚本或 Telnet。下面按由简单到完整的方式给你说明。
mail / mailx 命令sudo apt update
sudo apt install mailutils
echo "这是测试邮件内容" | mail -s "测试邮件主题" user@example.com
✅ 如果本机已配置好邮件发送(如 Postfix),即可成功。
sudo apt install postfix
安装时选择:
example.com)sudo systemctl status postfix
echo "Postfix 测试" | mail -s "Postfix Test" user@example.com
sudo tail -f /var/log/mail.log
msmtp(轻量级)sudo apt install msmtp msmtp-mta mailutils
~/.msmtprcdefaults
auth on
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account qq
host smtp.qq.com
port 587
from your@qq.com
user your@qq.com
password 授权码
account default : qq
⚠️ 注意
chmod 600 ~/.msmtprc
echo "SMTP 测试" | mail -s "SMTP Test" user@example.com
sudo apt install python3
import smtplib
from email.mime.text import MIMEText
msg = MIMEText("这是 Python 发送的测试邮件")
msg["Subject"] = "Python SMTP 测试"
msg["From"] = "your@qq.com"
msg["To"] = "user@example.com"
with smtplib.SMTP("smtp.qq.com", 587) as server:
server.starttls()
server.login("your@qq.com", "授权码")
server.send_message(msg)
print("邮件发送成功")
telnet smtp.qq.com 25
然后手动输入 SMTP 命令(适合排查协议问题)。
sudo tail -n 50 /var/log/mail.log
sudo apt install postfix
只用于本地回环测试即可。
| 场景 | 推荐方式 |
|---|---|
| 快速测试 | mail |
| 服务器发信 | Postfix |
| 使用外部邮箱 | msmtp |
| 程序测试 | Python |
| 协议调试 | Telnet |
如果你愿意,可以告诉我:
我可以给你一份完全可复制的配置方案。