「特定のお客さんに送ったメールがエラーで返って来る」
という連絡を受けた。
こういう場合は帰って来たエラーメールを見ると原因が判明することが多いので、エラーメールを転送して貰った。
そのエラーメールには、
> alt1.gmail-smtp-in.l.google.com[74.125.25.27] said: 421-4.7.0
> [xxx.xxx.xxx.xxx xx] Our system has detected an unusual rate of
> 421-4.7.0 unsolicited mail originating from your IP address. To protect our
> 421-4.7.0 users from spam, mail sent from your IP address has been
> temporarily 421-4.7.0 rate limited. Please visit 421-4.7.0
> https://support.google.com/mail/answer/81126 to review our Bulk Email 421
> 4.7.0 Senders Guidelines. qi3si22538142pac.30 – gsmtp (in reply to end of
> DATA command)
と言う部分があり、そのまま読むと
「そちらの(メールサーバーの)IPアドレスから通常では無い数の未承諾メールが送られたので、ユーザーをspamから保護するために一時的にブロックしました。」
となる。
すぐにこのメールサーバーの管理者に連絡して事情を説明し、ログからメールの送信数をチェックして貰ったところ、1日当たり数百通程度ということなので、それほど多いとも思えない。
そこでこのエラーに関してググってみると、どうもDNSの設定でSPFレコードを記述しないとブロックされることがあるようだということが判明。
私自身はDNSの設定を弄れないので、管理者とやり取りしながら設定を変更して貰ってなんとか解決した。
その際にチェックのために
http://www.kitterman.com/spf/validate.html
及び
SPFレコードチェックツール(アスメル技術マニュアル)
の二箇所のサイトを利用させて貰った。
最初の時点で設定されていたSPFレコードは
”v=spf1 a:hogehoge.com ~all”
で、これだと1番目のサイトでのチェックで”softfail domain owner discourages use of this host”となり、これではGmailのサーバーで弾かれてしまう。
そこでいろいろと記述を変更しながら1番目のサイトで記述方法をチェックし(ページ中ほどの”Test an SPF record”で実行)、実際に設定後に問題無いかを2番目のサイトで確認してエラーが無くなったところで実際にGmail宛にメールを出したところ無事に届いたので解決とした。
実際に記述したのは
「v=spf1 ip4:***.***.***.***(メールサーバのIPアドレス) include:1legend.com a:hogehoge.com(ドメイン名) ~all」
という内容。
その後テストしたところinclude:の部分は無くてもチェックは通るんだけど、怖いからそのままにしてある(汗)。
ただこのエラーの場合、エラーメールが返って来るまで丸五日が経っていたことが問題。
当方のサーバーのMTAが一時的なエラーと認識してリトライしていたらしい・・・これはなんとかせねば(汗)。