【mailコマンド】Postfixなどメール配信用ソフトを利用せずにメール送信する
Linuxサーバーにおいてスクリプトの実行結果などをメール送信したい場合があります。
今まで mail コマンドを利用して送信していたのですが幸いPostfixなどのメール配信用ソフトが起動していたため、中継先のSMTPサーバーを特に指定せずに送信できていました。
今回、Postfixなどのメール配信用ソフトが起動していないサーバーでメール送信したい時に少し躓き時間をとられましたので自身の備忘として記事を残しておきたいと思います。
結論だけを先に記載すると「中継先のSMTPサーバーを指定する」ことでメール送信することができました。
mail コマンドのインストール
インストールされてない場合は、インストールします。
yum -y install mailx
※ググってみると mailコマンド、mailxコマンド と同じような使い方をしている記事が多くあります。
それは、mailコマンドが mailxコマンドへのシンボリックリンクであるためです。
そのためmailコマンドが mailxコマンドのどちらを利用しても同じ結果となります。
SMTPサーバを指定してメール送信
mailコマンドのオプションは、以下を指定します。
-s メール件名
-S SMTPサーバを指定(smtp=smtp://SMTPサーバー:25)
-r 送信元メールアドレス
※宛先メールアドレスはスペースで複数指定可能
-c CCを指定
-b BCCを指定
・構文(参考)
echo “メール本文” | mail -s “メール件名” -S smtp=smtp://SMTPサーバー:25 -r 送信元メールアドレス 宛先メールアドレス1 宛先メールアドレス2
※echo “メール本文”は、メール本文となる部分です
・実行例
echo “今日は晴れです” | mail -s “テストメールです” -S smtp=smtp://SMTPサーバー:25 -r from@local.com to1@local.com to2@local.com
まとめ
これでPostfixなどのメール配信用ソフトが起動していないサーバーでもメールを送信することができます。ご参考まで。