Postfixで、メールのリレー。Gmail対策。NotAuthorizedError

この記事は約8分で読めます。

Gmail宛てのエラー NotAuthorizedError

@gmail.com宛てにメールを送る際に、「The IP you’re using to send email is not authorized」
というエラーが返ってくることがあります。今回は、突然やってきました(たいがい、突然なのですが・・・)。

<○○○@gmail.com>: host gmail-smtp-in.XXX.google.com[XXX.XXX.XXX.XXX] said:
    550-5.7.1 [XXX.XXX.XXX.XXX] The IP you're using to send mail is not
    authorized to 550-5.7.1 send email directly to our servers. Please use the
    SMTP relay at your 550-5.7.1 service provider instead. Learn more at 550
    5.7.1  https://support.google.com/mail/?p=NotAuthorizedError
    xxxxxx.151 - gsmtp (in reply to end of DATA command)

というエラーで、戻ってきます。

これは、送信しようとしているメールサーバーから、何らかの原因で送信できないということです。

Gmail、エラーの原因

原因は、該当IPもしくは、そのIP付近のサーバーからgmail宛てに大量の迷惑メールが送られて、IPアドレスが、ブラックリストに登録されてしまった。ということが原因であることが多いです(予想、例)。

spamhaus

から、該当サーバーのIPアドレスを入れてチェックします。

↑見事、ブラックリストに入っていました(汗)。

ブラックリストからの排除

↑チェックしたページのしたのほうに、「removal Procedure」というところがあります。ここで、「Remove an IP from PBL」をクリックします。

↑「PBL Self-Service IP Removal」というところに飛びます。

↑画面下のほうで、チェックを入れて、「Remove IP Address … 」を押します。

↑「IP Address to remove」のところに、該当IPアドレスを入れて、
「Your Email Address」には、きちんと受信できるメールアドレスを入れます。
そして、そのほか、きちんと選んで「Submit」を押します。

↑「Verify Your Removal Request」という画面になります。
別途メールが来ているはずです。

↑このようなメールで、赤枠部分に、5桁の数字が書かれています。
この5桁の数字を、「Verify Your Removal Request」の画面に入れます。

↑「Removal Control: Request Accepted」という画面になります。

問題がなければ、該当IPは、30分ほどで、削除されます。
ただし、/21という広大なブロックのすべてのIPが削除されたわけではないです。

Gmailのエラーの解消は・・・

Gmailのエラーは、すぐに解消されるわけではないです。
待ってはいられないので、ブラックリストに登録されている、/21以外のサーバーから、gmail宛てに送信するようにします。

ブラックリストに掲載されてしまったメールサーバー

ブラックリストに掲載されていないメールサーバー

gmailに送信

というふうに、リレー(転送)をしてみたいと思います。

リレー方法その1。差出人(From)で、分ける

指定されたドメインからのメールは、すべて、違うメールーサーバー経由で、送信します。
この場合、@gmail.com以外の宛先も、リレーされます。

# vi /etc/postfix/main.cf
sender_dependent_default_transport_maps = hash:/etc/postfix/sender_transport

↑と、加えます。「sender_transport」のファイル名は、この通りでなくてもいいです。わかりやすいファイル名にしましょう。
# vi /etc/postfix/sender_transport

@(ドメイン) smtp:(リレー先のメールサーバー):25

というように記述をします。

もちろん、リレー先のメールサーバーでは、該当サーバーからのリレーを許可します。

# postmap /etc/postfix/sender_transport

を実行して、
# systemctl restart postfix

とすれば、メールが転送(リレー)されます。

リレー方法その2。宛先で分ける

特定の宛先、今回は、「@gmail.com」だったら、「転送」というルールを設定します。
ブラックリストに掲載していないサーバーから、「@gmail.com」を送信したいので、この方法が、的確かと思われます。

# vi /etc/postfix/main.cf

transport_maps = hash:/etc/postfix/to_transport

と設定をします。「to_transport」のファイル名は、違うファイル名でも大丈夫です。
# vi /etc/postfix/to_transport

gmail.com smtp:(リレー先のメールサーバ-)

と、記述をします。
@gmail.comのメールは、指定されたメールサーバーにリレーされます(転送されます)。
# postmap /etc/postfix/to_transport

を実行して、
# systemctl restart postfix

とすれば、メールが転送(リレー)されます。
# vi /etc/postfix/to_transport

(ローカルドメイン1)   :
(ローカルドメイン2)   :
gmail.com smtp:(リレー先のメールサーバ-1)
* smtp:(リレー先のメールサーバ-2)

↑ 「(ローカルドメイン1) :」は、ローカルに落とすドメイン。複数指定する場合は、複数行を指定する。「gmail.com」は、「(リレー先のメールサーバ-1)」へ。そのほかは、「(リレー先のメールサーバ-2)」へという指定。(2020/10/14追記)

 

転送先の設定。転送先が、Qmailの場合

Qmailの場合、周辺ソフトにより左右されますが、私のところでは、
Qmail + VPOPMAIL + tcpserver で運用しており、
この場合、
リレー許可するファイルは、tcpserverで設定をしています。

#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
exec /usr/local/bin/tcpserver -v -u 556 -g 503 -R -l (ホストFQDN) -x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp recordio /var/qmail/bin/qmail-smtpd 2>&1

↑ここで、指定している
/home/vpopmail/etc/tcp.smtp.cdb

↑この元のファイルは、
/home/vpopmail/etc/tcp.smtp

であり
127.:allow,RELAYCLIENT=""
XXX.XXX.XXX.XXX:allow,RELAYCLIENT=""

と指定しています。上記の「XXX.XXX.XXX.XXX」が転送元のIPアドレスになります。

.cdbフィアルは、

#!/bin/sh

/usr/local/bin/tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp

のコマンドで、作成をします。
/home/vpopmail/etc/tcp.smtp
↓
/home/vpopmail/etc/tcp.smtp.cdb
↓
exec /usr/local/bin/tcpserver -v -u 556 -g 503 -R -l (ホストFQDN) -x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp recordio /var/qmail/bin/qmail-smtpd 2>&1

と、設定をしていきます。

これで、
XXX.XXX.XXX.XXX
から、メールの転送がOKとなります。

転送先の設定。転送先が、Postfixの場合

Postfixは、設定が楽です。

# vi /etc/postfix/main.cf

mynetworks = 127.0.0.0/8,XXX.XXX.XXX.XXX

と設定をします。「XXX.XXX.XXX.XXX」が、転送元のIPアドレスです。

これで、Postfixを、reload、もしくは、再起動すれば、受信ができるようになるでしょう。

どうしても、「NotAuthorizedError」というエラーが解消されない(2020/10/18追記)

ブラックリストからの排除

ConoHa VPS からGmailにメールが届かない。ブロックされる。解決!

などを行って、しばらく(数週間)をおいても、一向に、「NotAuthorizedError」のエラーが解消されない!

という場合、「グローバルIPを変更する」という手段が手っ取り早いと思います。
VPSや、クラウドで、グローバルIPが決定された後、gmail宛てに送ってみる。
届く場合、そのグローバルIPは、離さないようにしたほうがいいでしょう。
ipv4は、通らないが、ipv6は、通ることが多いです・・・

Gmail対策 結論・・・

Gmailは、やっかいです。知らない間に、ブロックされています。
そして、解消には、数ヶ月かかる場合もあります。
違う業者さん(違うIPアドレス帯)に、メールサーバーを用意して、いつでも、転送できるように、セーフティーネットを張っておくのがベターな方法かと思います。

参考記事

ConoHa VPS からGmailにメールが届かない。ブロックされる。

タイトルとURLをコピーしました