Tech Blog - mixross
概要
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 にアクセス
「デバイスを選択」で「その他」を選択し、適当な名前を入力「生成」を押すとパスワードが表示されるので控えておく
転送設定の変更
/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