Dies ist eine Erinnerung daran, was zu tun ist, wenn ein Shell-Skript, das sendmail unter Linux enthält, mit Terminalbefehlen funktioniert, jedoch nicht mit cron.
Nachdem ich die Shell im folgenden Format geschrieben hatte, schrieb ich cron, um pünktlich zu laufen. Dann funktionierte es normal mit dem Befehl und die Mail wurde gesendet, aber die Mail wurde nicht einmal zur geplanten Zeit in cron geschrieben.
mail.sh
#!/bin/sh
{
echo "From: <****@gmail.com> "
echo "To: <****@gmail.com> "
echo "Subject:Titel"
echo "Content-Type: text/plain;charset='UTF-8'"
echo "Content-Transfer-Encoding: base64"
}| sendmail -i -t
Also vermutete ich zuerst, dass es ein Problem mit cron gab, setzte die Dateiberechtigung auf chmod 777 und überprüfte dann das Protokoll, aber cron schien ohne Probleme zu funktionieren.
$ tail /var/log/cron
Aug 7 14:20:01 ip-***-**-*-** CROND[17995]: (root) CMD (/home/***/mail.sh)
Ich konnte daraus schließen, dass das Problem in sendmail lag. Ich sah mich um und stellte fest, dass das Hinzufügen von / usr / sbin / einwandfrei funktionierte und die E-Mail gesendet wurde. Bei Google Mail wurde sie im Junk-Mail-Ordner empfangen.
mail.sh
#!/bin/sh
{
echo "From: <****@gmail.com> "
echo "To: <****@gmail.com> "
echo "Subject:Titel"
echo "Content-Type: text/plain;charset='UTF-8'"
echo "Content-Transfer-Encoding: base64"
}| /usr/sbin/sendmail -i -t