本文详细讲解 Ubuntu 26.04 系统下通过命令行发送邮件的方法,使用 mailx 配合外部 SMTP 服务器,实现纯文本邮件、带附件邮件、脚本自动化告警,一步到位、稳定可靠。
一、Ubuntu 26.04 实操步骤
1. 安装工具
sudo apt update
sudo apt install -y bsd-mailx mailutils
2. 配置 SMTP(以 163 邮箱为例)
编辑配置文件:
sudo vim /etc/s-nail.rc
在末尾添加:
set from="你的163邮箱@163.com"
set smtp="smtp://smtp.163.com:587"
set smtp-auth=login
set smtp-auth-user="你的163邮箱@163.com"
set smtp-auth-password="你的客户端授权码"
set smtp-use-starttls
set ssl-verify=ignore
QQ 邮箱把 smtp 改成:
smtp://smtp.qq.com:587密码用 QQ 邮箱授权码
3. 发送测试邮件
echo "这是 Ubuntu 26.04 命令行发送的测试邮件" | mail -s "测试标题" 收件邮箱@xxx.com
4. 发送文件内容作为邮件
mail -s "服务器日志" test@qq.com < /var/log/syslog
5. 发送带附件
echo "请看日志附件" | mail -s "日志报告" -a /var/log/syslog test@qq.com
6. Shell 脚本自动发告警(示例)
#!/bin/bash
TO="admin@example.com"
SUBJECT="【告警】磁盘空间不足"
CONTENT=$(df -h)
echo "$CONTENT" | mail -s "$SUBJECT" $TO
二、常见问题
- 发不出去:检查授权码、端口 587、防火墙是否放行出站
- 提示证书错误:配置里已经加了
ssl-verify=ignore,忽略即可 - 被当成垃圾邮件:尽量用企业邮箱或自己域名邮箱发送