postfixでGmailのリレー設定

はじめに

システムのメール送信をGmailでリレーして簡単に送信出来るように設定しておく
mailコマンドでメールが送れるようになるので手軽にログを送ったりするのに使える
この手の記事はたくさんあるがうまくいくものがなかなかなかったのでメモ

環境

  • Ubuntu 16.04.1 LTS 64bit

インストール

postfixとmailをコマンドを使うためにmailutilsのパッケージを導入する

1$ sudo apt-get install postfix mailutils

インストール中のpostfixの質問では「設定なし」を選択する

設定

gmail の事前設定

Gmailではアプリケーション側がパスワードを持つようなアプリケーションはそのままでは使えないのでGmail側の設定を変更する
https://www.google.com/settings/u/2/security/lesssecureapps
からアクセスをオンにしておく

コンフィグファイルの作成

main.cfを新たに作成する

1$ cat /etc/postfix/main.cf
2relayhost = smtp.gmail.com:587
3smtp_use_tls = yes
4smtp_sasl_auth_enable = yes
5smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
6smtp_sasl_security_options = noanonymous
7smtp_sasl_tls_security_options = noanonymous

ログイン情報の作成

1$ sudo vi /etc/postfix/sasl/sasl_passwd
2smtp.gmail.com:587 hoge@gmail.com:password

使用するユーザー名とパスワードを入力する

これをハッシュ化する 元ファイルは不要なので削除する

1$ sudo postmap /etc/postfix/sasl/sasl_passwd
2$ sudo rm /etc/postfix/sasl/sasl_passwd

テスト

mailコマンドを使用してメールの送信を確認する

1$ mail target@example.com
2CC:
3Subject:Test
4test
5[Ctrl+D]
6$ mailq
7Mail queue is empty

target@example.comのメールボックスに送信されてれば問題なし

トラブルシューティング

mailqと/var/mail/usernameを確認する
エラーコードから原因を調べる

530 5.7.0

smtp_use_tls = yes
の設定がない場合に出る

530-5.5.1

https://www.google.com/settings/u/2/security/lesssecureapps
からアクセスをオンに変更する