温馨提示×

Ubuntu如何测试邮件发送功能

小樊
43
2026-08-27 01:47:59
栏目: 智能运维

在 Ubuntu 上测试邮件发送功能,常见做法有 命令行测试、使用邮件服务器、使用脚本或 Telnet。下面按由简单到完整的方式给你说明。


一、最简单:使用 mail / mailx 命令

1️⃣ 安装 mail 工具

sudo apt update
sudo apt install mailutils

2️⃣ 发送测试邮件

echo "这是测试邮件内容" | mail -s "测试邮件主题" user@example.com

✅ 如果本机已配置好邮件发送(如 Postfix),即可成功。


二、测试本地邮件服务器(推荐)

1️⃣ 安装 Postfix

sudo apt install postfix

安装时选择:

  • Internet Site
  • 填写系统域名(如 example.com

2️⃣ 查看 Postfix 状态

sudo systemctl status postfix

3️⃣ 发送测试邮件

echo "Postfix 测试" | mail -s "Postfix Test" user@example.com

4️⃣ 查看发送日志

sudo tail -f /var/log/mail.log

三、使用外部 SMTP(如 QQ、163、Gmail)

方法 1:使用 msmtp(轻量级)

安装

sudo apt install msmtp msmtp-mta mailutils

配置 ~/.msmtprc

defaults
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

⚠️ 注意

  • QQ / 163 邮箱要用 SMTP 授权码,不是登录密码
  • 文件权限必须安全:
chmod 600 ~/.msmtprc

测试发送

echo "SMTP 测试" | mail -s "SMTP Test" user@example.com

四、使用 Python 脚本测试(非常常用 ✅)

1️⃣ 安装 Python

sudo apt install python3

2️⃣ 测试脚本

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(偏底层)

telnet smtp.qq.com 25

然后手动输入 SMTP 命令(适合排查协议问题)。


六、常见问题排查

✅ 邮件发不出去?

sudo tail -n 50 /var/log/mail.log

✅ 被当成垃圾邮件?

  • 使用真实域名
  • 配置 SPF / DKIM
  • 避免频繁发送

✅ 本地测试不想发真实邮件?

sudo apt install postfix

只用于本地回环测试即可。


七、推荐方案总结

场景 推荐方式
快速测试 mail
服务器发信 Postfix
使用外部邮箱 msmtp
程序测试 Python
协议调试 Telnet

如果你愿意,可以告诉我:

  • ✅ 是 服务器发信 还是 程序测试
  • ✅ 使用 QQ / 163 / 企业邮箱 / Gmail
  • ✅ 是否用于 生产环境

我可以给你一份完全可复制的配置方案

0