Gmailへのメール転送


いつから始まったのか判らないのですが、先々週くらいから自宅メールサーバーのアカウントから、Gmailへのメール送信ができなくなりました。 最近はサーバーも安定して動作しており、あまりサーバーに触ることは無かったのですが、その分、一旦何か問題が起きると思い起こすのが大変です。 ということで、自分のための備忘録として残しておきます。

まず結論から言うと今回の問題はGoogle側でのセキュリティポリシーの変更でした。

今回の問題は自宅サーバーのメールアカウントからGmail宛てにメールを送る場合、Gmailのサーバーで認証エラーが発生しているというもの。 認証で躓いているので、送信すらできていないためGmailのサーバーからエラーメールが来るということではなく、単に送信できないでキューにメールが溜まるというもの。他のメールサーバーには問題なく送信できているのですがGmailだけがNGでした。

エラーログにはこんな感じのエラーメッセージが残っています。 (一部伏字)

SASL authentication failed; server smtp.gmail.com[XX.XXX.XXX.XXX] 
said: 535-5.7.8 Username and Password not accepted. 
Learn more at?535 5.7.8 https://support.google.com/mail/XXXXX - gsmtp

ここで、今のメール転送のルールを思い起こしてみました。 私の自宅サーバー内のメールの転送はここにあるようにmydnsのサーバーから中継をしています。 メールは中継サーバーとして全部mydnsに送るようにしているので、なぜGmailのメールサーバーから認証エラーが出るのか不思議です。 ここで更に思い起こしてみると、これはSOTA日本支部のメーリングリストをGoogle Groupでやっていたころに設定したのだと思うのですが、Google Groupのメール転送がなかなかうまく動かずGmailとGoogle Group向けのメールだけはmydnsの中継サーバーを経由せず直接Gmailのメールサーバーに転送している設定になっていました。 これは/etc/postfix/transportの設定でなされていました。 (ちなみに、Google Groupの転送不具合はいまだに原因不明で結局Google Groupを使うのは止めてSOTA日本支部はSlackに移行しています。)

このためGmail宛てのみメールサーバーで認証エラーが出ていたようです。 では以前はGmailメールサーバーに直接送れていたのに、なぜ急に送ることができなくなったのかですが、これはGoogleのセキュリティポリシーの変更のようです。

安全性の低いアプリからのメール転送を現在は拒否することになったようです。ここでいう「安全性の低い」というのはGoogleのメールアプリや一般に使われているメールアプリではない特殊な用途のものということのようで、自宅で運用しているような小規模のメールサーバーからの直接のアクセスは拒否するようです。

ただこの拒否が全部拒否ということではなく、きちんと認証すれば受け付けてくれるようです。 このためにはGmailの認証に通常のGmailのアカウントのIDとパスワードではなく、正規にGoogleアカウントから生成したパスワードでログインすれば良いようです。 これが「アプリパスワード」というもので、この作成を行いました。

手順としては、まずGoogleアカウントで「セキュリティ」から2段階認証をONにする必要があります。送られてきたSMSメッセージのコードを入力し、2段階認証をON設定にします。

その後、元のセキュリテイ設定に戻り、今度はアプリパスワードを設定します。

設定するとこのように16桁のアプリパスワードが与えられますのでこれをコピペしておきます。

このアプリパスワードをPostfixに設定します。

/etc/postfix/relay_passwordを開き、下記のように平文で入力(一部伏字)

[smtp.gmail.com]:587 XXX@gmail.com:XXXXXXX16桁アプリパスワード

後はhashで完了

# postmap hash:/etc/postfix/relay_password

/etc/postfix/transportでは下記のように設定

gmail.com   smtp:[smtp.gmail.com]:587
googlegroups.com    smtp:[smtp.gmail.com]:587
*    :

これもhashが必要です

# postmap hash:/etc/postfix/transport

この後、PostfixをリロードでOK

これでGmailとGooglegroups向けは直接Googleのサーバーにアクセスし、他のメールは全部mydnsの中継サーバー経由となります。

尚、一度でも2段階認証をオフにしたら最初からやり直しになります。 2段階認証はアプリパスワードをもらうためだけのものではありません。

Gmail向けのメールもすべてmydnsの中継サーバーを通すのであればTransportファイルで全部通す設定にしてしまえばGoogleの2段階認証は不要ですが、今後に備えて覚えておくことにしました。

 


JA1CTV
自宅サーバーの道

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です