Ceci est un rappel de ce qu'il faut faire lorsqu'un script shell contenant sendmail sous Linux fonctionne avec des commandes de terminal mais pas avec cron.
Après avoir écrit le shell dans le format suivant, j'ai écrit cron pour qu'il s'exécute à l'heure. Ensuite, cela fonctionnait normalement sur la commande et le courrier était envoyé, mais le courrier n'était pas envoyé même à l'heure programmée écrite dans cron.
mail.sh
#!/bin/sh
{
echo "From: <****@gmail.com> "
echo "To: <****@gmail.com> "
echo "Subject:Titre"
echo "Content-Type: text/plain;charset='UTF-8'"
echo "Content-Transfer-Encoding: base64"
}| sendmail -i -t
Donc, j'ai d'abord soupçonné qu'il y avait un problème avec cron, j'ai défini l'autorisation de fichier sur chmod 777, puis j'ai vérifié le journal, mais cron semblait fonctionner sans problème.
$ tail /var/log/cron
Aug 7 14:20:01 ip-***-**-*-** CROND[17995]: (root) CMD (/home/***/mail.sh)
J'ai pu conclure que le problème était dans sendmail, alors j'ai regardé autour de moi et j'ai trouvé que si j'ajoutais / usr / sbin /, cela fonctionnait bien et le courrier était envoyé, et sur gmail, il était reçu dans le dossier de courrier indésirable.
mail.sh
#!/bin/sh
{
echo "From: <****@gmail.com> "
echo "To: <****@gmail.com> "
echo "Subject:Titre"
echo "Content-Type: text/plain;charset='UTF-8'"
echo "Content-Transfer-Encoding: base64"
}| /usr/sbin/sendmail -i -t
Recommended Posts