もなかアイスの試食品

「とりあえずやってみたい」そんな気持ちが先走りすぎて挫折が多い私のメモ書きみたいなものです.

CentOS6、PostfixでcronのメールをGmailにリレーする

はじめに

cronのバッチ処理がちゃんと動作したかどうかをメールで送信する機能が欲しかった

メールの送信先は、Gmail

ただ、よく見る「メール系」の設定はメンドクサイイメージ。

簡単な方法を調べてみると、メールを送信するだけだと、「ssmtp」が便利らしい
※参考:[linux][sSMTP] 自前で smtp サーバを用意せずにメール送信する

でも、Gmailの認証がうまく動作しなかった・・・

2時間ほど色々調べて結局できなかったので、すでにインストールされていたpostfixで試したところすんなり(?)できた

設定・パッケージは以下のサイトを参考にした。
[Postfix]メールのリレー設定あれこれ

環境

CentOS 6.7
Postfix 2.6.6

パッケージのインストール

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
.

↓テスト送信を受信したもの f:id:monakaice88:20160504080915p:plain

↓cron実行結果がメールで届く様になった f:id:monakaice88:20160504080917p:plain

サーバを管理している感がいい

Gmailが利用できるとディスクの容量監視とか、アプリの死活監視とか、夢が広がりますな

参考サイト

[Postfix]メールのリレー設定あれこれ
[linux][sSMTP] 自前で smtp サーバを用意せずにメール送信する

※追記
タイトルが非常に似ているサイトがあったため、タイトル修正
「リレーする」以外がほぼ一致してた(;・∀・)