送信するだけのメールサーバーでgmaiの550-5.7.26エラーに悩まされた件

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

こんにちわ。
 

ある日突然、構築してあったwebサービスで、メール送信ができなくなっていることに気がついた、下駄です。
 

メールの送信先をgmailにすると、サーバーエラーで、メールが送信されなくなる事象です。
 

これまで何度もこのエラーに悩まされてきましたが、DNSのtxtレコードにspf情報を登録すればいいという事で、googleのサイトに書いてあるとおりに登録していたのですが、今回はさらにそれに加えて登録情報が必要だったので、
 

その対応についての備忘録を残しておきます。
 

同じエラーに悩まされる人の助けになれば幸いです。

本日のIT謎掛け

「gmail」と、かけまして、
 

「ファミレスのドリンク」と、ときます。
 

そのココロは・・・
 

フリーの定番でしょう。
 

無料で使えるgmailと、フリードリンク

エラー事象

これは、自分の構築しているメールサーバーにメール送信すると、普通に送信ができて、
 

gmailドメインのアドレスに送信すると、サーバーでは以下のようなエラーが発生しているという事象です。
 

 

mail.example.comが送信側のドメインだと考えてください。
 

ポイントは、”This message does not have authentication information or fails to 550-5.7.26 pass authentication checks. To best protect our users from spam, the 550-5.7.26 message has been blocked. Please visit 550-5.7.26 https://support.google.com/mail/answer/81126#authentication for more 550 5.7.26 information. c7si22504154pgw.429 – gsmtp (in reply to end of DATA command))”の箇所で、
 

エラーメッセージが”550-5.7.26″という事を表していて、googleの指定するサイトに言ってみたところ、550-5.7.xという解説はあるけど、.26のマイナーバージョンの明確kな解説はされていませんでした。
 

DNSのSPF設定

Google解説サイトにかかれているのは、以下の内容でDNSのTXTレコードをセットせよ。との事でした。
 

 

とりあえず、なんにもセットしていない状態では、送信すらされなかったのですが、この設定をして、DNSが反映されると、送信はできるようになりました。
 

しかし、gmailサーバーでは、「スパムフォルダ」に入れられてしまい、迷惑メール扱いになってしまいます。
 

ちゃんと認証しろつったから、書かれているとおりにしたのに、スパム扱いって、どんなやねん!!!
 

追加対応

次に必要な対応は、sendmail設定です。
 

今回は、postfixを使っているので、main.cfの設定で以下の内容で登録することで、スパムフォルダに入ることなく送信できるようになりました。
 

 

ちゃんと、ドメイン名を登録してあげないと、不正扱いになるようです。
 

もちろん、PHP側でも、fromには、同じドメインで送信する必要があるし、mail関数には、-fオプションを付けて上げることで、総仕上げになります。
 

いや〜、半日かかった・・・、いや、捨てた?、いやいや、勉強になった!!!!

Leave a Reply

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