環境
CentOS: 7.4
sendmail でメールが届かない
先日、こちらの記事を参考に、サーバー上のコマンドラインからメールを送ろうとしました。
そのときの手順としては以下のとおり。
① 適当なディレクトリに以下のようなテキストファイルを作成。
From: <FROM-EMAIL-ADDRESS>
To: <TO-EMAIL-ADDRESS>
Subject: タイトルだよ
Content-Type: text/plain;charset="UTF-8"
Content-Transfer-Encoding: base64
メール送信テストだよ
② cat と sendmail コマンドを使ってメールを送信。
# cat ~/test_mail | sendmail -i -t
本来はこれだけでメールが送られるはずですが、送れませんでした(自分のローカルで試すと成功する)。
また、/var/log/maillog を確認してもエラーは見受けられませんでした。
送信元と送信先をコマンドライン上で指定する
細かい原因は分かりませんでしたが、最終的に送信元と送信先のアドレスをコマンドライン上で指定することで解決しました。
~/test_mail 内の1~2行の From: <FROM-EMAIL-ADDRESS> と To: <TO-EMAIL-ADDRESS> を削除したうえで、以下のコマンドを実行します。
cat ~/test_mail | sendmail -i -f <FROM-EMAIL-ADDRESS> <TO-EMAIL-ADDRESS>
-t オプションは必要ないので取り除き、代わりに -f オプションを利用して送信元アドレスを指定しています。また、同じく送信先アドレスもコマンド上で指定しています。
環境によってはまったく別の要因も考えられるかと思いますので、参考程度に見ていただければと思います。