LoginSignup
1
0

More than 3 years have passed since last update.

ターミナルでは実行できるsendmailがcronで動作しなかった話

Last updated at Posted at 2020-08-07

Linuxでsendmailを含んだシェルスクリプトがターミナルのコマンドでは動作するのにcronで動作しなかった時の対処法の備忘録です。

次のような書式でシェルを書いた後、cronに定時実行するように書き込みました。すると、コマンド上では正常動作しメールが送信されましたが、cronに書き込んだ定時になってもメールが送信されませんでした。

mail.sh
#!/bin/sh
{
echo "From: <****@gmail.com> "
echo "To: <****@gmail.com> "
echo "Subject: タイトル"
echo "Content-Type: text/plain;charset='UTF-8'"
echo "Content-Transfer-Encoding: base64"
}| sendmail -i -t

そこで、まずcronに問題があるのかと疑い、ファイル権限をchmod 777にした後、ログを確認してみましたがcronは問題なく動作しているようでした。

$ tail /var/log/cron
Aug  7 14:20:01 ip-***-**-*-** CROND[17995]: (root) CMD (/home/***/mail.sh)

問題はsendmailにあるらしいことが断定できたので調べ回ったところ、/usr/sbin/をつけたら問題なく動作しメールが送信され、gmail上では迷惑メールフォルダに受信できていました。

mail.sh
#!/bin/sh
{
echo "From: <****@gmail.com> "
echo "To: <****@gmail.com> "
echo "Subject: タイトル"
echo "Content-Type: text/plain;charset='UTF-8'"
echo "Content-Transfer-Encoding: base64"
}| /usr/sbin/sendmail -i -t
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0