Tech Blog - mixross

2段階認証を設定したGoogleアカウントのGmail経由でメールを送る

このエントリーをはてなブックマークに追加
LINE

概要

Linux(CentOS7)サーバからGmail経由でメールを送信していたが、急にメールが送れなくってしまった。
元々はGmailのユーザIDとパスワードを用いて
/etc/postfix/sasl_password

[smtp.gmail.com]:587 hoge@gmail.com:password

と設定していた。

/var/log/maillog
を確認すると

Application-specific password required. Learn more at?534 5.7.9  https://support.google.com/mail/?p=InvalidSecondFactor j13sm11977106pfn.103 - gsmtp)

と、エラーが出ていた。
理由は単純で、設定していたGoogleのアカウントに2段階認証を設定していたためだった。

対策

Googleではログイン用とは別にアプリから利用するためのパスワードが発行できるので、それに置き換えるだけ。

Googleアプリ作成

https://myaccount.google.com/apppasswords にアクセス

make app 1
「デバイスを選択」で「その他」を選択し、適当な名前を入力
make app 2

「生成」を押すとパスワードが表示されるので控えておく

display password

転送設定の変更

/etc/postfix/sasl_password のパスワード部分を上で表示されたパスワードに書き換える

[smtp.gmail.com]:587 hoge@gmail.com:new-password

Postfix が参照するデータベースファイル /etc/postfix/transport.db を更新

$ sudo postmap /etc/postfix/sasl_password

Postfix再起動

$ sudo service postfix restart
RSS