补充说明
mailx 是 POSIX mail 的增强实现,不同发行版来源不同:Debian/Ubuntu 的 bsd-mailx 包提供 mailx,RHEL 使用 s-nail(同样提供 mailx 命令),旧版还有 heirloom-mailx。常用选项大体兼容,但附件、SMTP 等细节有差异。
最常见用途是在脚本中发送通知:echo "内容" | mailx -s "主题" user@example.com。真正的投递依赖本机 MTA(Postfix、Sendmail 等)或配置好的 SMTP 中继,否则邮件可能滞留在队列中。
读取模式可直接运行 mailx 查看当前用户的邮箱(通常是 /var/mail/$USER)。使用附件时 bsd-mailx 用 -a 文件,s-nail 的附件选项不同,应先查看本机 man 页。
语法
mailx [-s 主题] [-a 附件] [-c 抄送] [-b 密送] 收件人...
选项
-s <主题>:设置主题-a <文件>:添加附件(bsd-mailx 语义)-c <地址>:抄送-b <地址>:密送-r <地址>:设置 From 地址-v:显示详细投递过程
实例
# 发送简单通知
echo "备份完成" | mailx -s "backup ok" admin@example.com
# 从文件读取正文
mailx -s "日报" ops@example.com < report.txt
# 带附件发送
mailx -s "日志" -a app.log ops@example.com < body.txt
# 抄送负责人
echo "done" | mailx -s "deploy" -c lead@example.com team@example.com
# 阅读本地邮箱
mailx -f /var/mail/$USER