ここしばらくWordPressからのメール通知が来ないなと思っていたら、ConoHaのVPSからGmailあてに送信されるメールがGmail側で拒絶されるようになっていました。/var/log/maillogにはこんなお叱りの言葉が。
Our system has detected 550-5.7.1 that this message is likely unsolicited mail. To reduce the amount of 550-5.7.1 spam sent to Gmail, this message has been blocked. Please visit 550-5.7.1 http://support.google.com/mail/bin/answer.py?hl=en&answer=188131 for 550 5.7.1 more information.
いろいろ調べた結果、今回はWordPressプラグインとDNS設定の合わせ技で解決しました。
まずWordPressプラグイン「WP Mail SMTP」を導入します。このプラグインを使うとWordPressのメールサーバーに任意のSMTPサーバーを使うことができるのですが、今回はSMTPサーバーは使わず、From Emailによる送信元設定(noreply@bari-ikutsu.com)とreturn-path設定だけを使用してこのように設定します。
次にbari-ikutsu.comドメインのDNSにSPFレコードを追加します。SPFレコードの記述方法詳細についてはここでは触れませんが、以下のように記載しています。
v=spf1 include:_spf.google.com a ~all
ポイントは「a」で、bari-ikutsu.comのAレコード(=サーバーのIPアドレス)からの送信を許可するように記載しています。もちろん「ip4」や「ip6」を用いてサーバーのIPアドレスを直接設定してもよいです。なお「include:_spf.google.com」はGoogle Appsの設定となります。
これらの設定により、WordPressからのnoreply@bari-ikutsu.comを送信元とするメールがSPFレコードにより妥当と判断され、Gmailに拒否されなくなりました。
なおこの設定をしても、MicrosoftのOutlook.comメールサービスでは迷惑メールと判定されてしまいます。WP Mail SMTPで外部SMTPサーバー(GmailやOutlook.com)を使用することで回避できますが、送信元アドレスがGmailやらOutlook.comやらになってしまいますのでお好みで。