~ > which mail /bin/mail ~ > ls -la /bin/mail lrwxrwxrwx 1 root root 22 Feb 25 14:18 /bin/mail -> /etc/alternatives/mail
据man mail ,
-E如果传出的消息在其第一个或唯一的消息部分中不包含任何文本,则不要发送它,而是静静丢弃它,在程序启动时有效设置skipemptybodyvariables。 这对从cron(8)启动的脚本发送消息很有用。
但是,即使使用-E ,使用echo我的cron脚本仍然会发送空的消息。 会发生什么(基本上)是这样的:
logmsg="" echo "$logmsg" | mail -E -s "Log Message" [email protected]
我误解了一些东西吗? 为什么mail -E用空邮件发送邮件?
您的电子邮件包含一个主题,所以它不是空的。 当你尝试发送它没有-s "Log Message"时会发生什么?
HBruijn的评论为我解决了这个问题 – 换句话说:
这封电子邮件已发送:
echo '' | mail -E -s "echo ''" root
但是这个不是:
echo -n '' | mail -E -s "echo -n ''" root