CentOS6、PostfixでcronのメールをGmailにリレーする
はじめに
cronのバッチ処理がちゃんと動作したかどうかをメールで送信する機能が欲しかった
メールの送信先は、Gmail
ただ、よく見る「メール系」の設定はメンドクサイイメージ。
簡単な方法を調べてみると、メールを送信するだけだと、「ssmtp」が便利らしい
※参考:[linux][sSMTP] 自前で smtp サーバを用意せずにメール送信する
でも、Gmailの認証がうまく動作しなかった・・・
2時間ほど色々調べて結局できなかったので、すでにインストールされていたpostfixで試したところすんなり(?)できた
設定・パッケージは以下のサイトを参考にした。
[Postfix]メールのリレー設定あれこれ
環境
パッケージのインストール
cyrusパッケージ群をインストールします(Gmailサーバの認証に必要・・・らしい)
# yum install cyrus-*
※postfixのパッケージ、自動起動はもう既に設定されたので書きません。
Postfixの設定変更・認証ファイル作成
Postfix設定ファイル(/etc/postfix.main.cf)を編集
relayhost = [smtp.gmail.com]:587 smtp_use_tls = yes smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_password smtp_sasl_tls_security_options = noanonymous smtp_sasl_mechanism_filter = plain smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt
認証に必要なアドレスとパスワードの組み合わせを「/etc/posfix/sasl_password」に保存 ファイルの中身はこんな感じ
[smtp.gmail.com]:587 Gmailメールアドレス:パスワード
以下のコマンドで、postfixが参照できるDBファイルを作成
# postmap hash:/etc/postfix/relay_password
postfixを再起動して設定を反映
# service postfix restart
root宛のメールをGmailに転送するようにする
「/etc/aliases」を編集して、最後の行に以下を追加。
root: Gmailアドレス
以下のコマンドを実行して、「/etc/aliases」の変更を反映
# newaliases
動作確認で、以下のコマンドでメールが届くかテスト
# mail -s "this is a test" root this is test .
↓テスト送信を受信したもの
↓cron実行結果がメールで届く様になった
サーバを管理している感がいい
Gmailが利用できるとディスクの容量監視とか、アプリの死活監視とか、夢が広がりますな
参考サイト
[Postfix]メールのリレー設定あれこれ
[linux][sSMTP] 自前で smtp サーバを用意せずにメール送信する
※追記
タイトルが非常に似ているサイトがあったため、タイトル修正
「リレーする」以外がほぼ一致してた(;・∀・)