我有一个 bash 脚本,与 nagios 一起使用,通过电子邮件发送通知。它的关键部分如下所示:
# $1 (FROM) | $2 (TO) | $3 (SUBJECT) | $4 (BODY)
/usr/bin/printf "%b" "$4" | /bin/mail -s "$3" "$2" -- -f $1
我知道我可以sendmail
直接使用该命令(像这样)但这意味着需要重新编写一些脚本来构建包括所有标头在内的整个消息。
有没有办法使用 指定其他 SMTP 标头/bin/mail
,在我自己的情况下,我正在尝试添加Importance: high
标头?
我正在运行 exim 4.63 作为我的 MTA 和 CentOS 5.6 x64。
答案1
有许多不同的版本mail
(参见邮件与邮件有什么区别以及Heirloom项目的写了不同版本的mail
)。
如果您想保持理智,我建议您避免使用任何名称与mail
.穆特是一个精简文本模式的邮件客户端,它经常可用,非常灵活,并且在任何地方的行为都相同。
mutt -H - "$2" <<EOF
From: $1
To: $2
Subject: $3
Importance: high
$4
EOF
答案2
是的,使用-a
标志,例如-a "Importance: high"
。
答案3
不,没有办法。标头语法很复杂,类似的工具mail
旨在限制用户接触它。要使用任意标头,您应该使用 sendmail 提交邮件。