~ > 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 Если исходящее сообщение не содержит текста в своей первой или единственной части сообщения, не отправлять его, а молча отбрасывать, эффективно устанавливая переменную skipemptybody при запуске программы. Это полезно для отправки сообщений из скриптов, запускаемых cron (8).
Однако даже с -E
, мой скрипт cron, который использует echo
, по-прежнему отправляет пустые сообщения. Происходит (по сути) следующее:
logmsg=""
echo "$logmsg" | mail -E -s "Log Message" me@mydomain.tld
Я что-то неправильно понял? Почему mail -E
отправлять электронные письма с пустыми сообщениями?
Комментарий HBruijn исправил это для меня, другими словами:
Это письмо было отправлено:
echo '' | mail -E -s "echo ''" root
но этого не было:
echo -n '' | mail -E -s "echo -n ''" root
Ваше электронное письмо содержит тему, поэтому оно не пустое. Что происходит, когда вы пытаетесь отправить его без -s "Log Message"
?