あるレンタルサーバーを使用してメールを送受信しています。このサーバーでは受信したメールを別のメールアドレスに転送できる設定が用意されていますが、この転送設定を利用してGmailに転送したところ、SPF認証が失敗してしまいました。

 

この問題は、Gmailがメールを受信する際に、envelope-from(送信元アドレス)が本来の送信元ドメインのままであるにもかかわらず、実際にメールを転送するサーバーとそのドメインが異なるために発生しています。Gmailのサーバーは、SPF認証が失敗し、メールを転送しようとするサーバーが送信元のドメインを詐称していると判断するため、この現象が生じます。

 

この問題を回避するためには、メールを転送するサーバーでSRS(Sender Rewriting Scheme)という仕組みを使用して、envelope-fromを適切に書き換えることが一番適切です。しかし、利用しているレンタルサーバーはSRSをサポートしていないことが分かりました。

 

そこで、SRSに対応しているレンタルサーバーがないか調べてみたのですが、

色々なレンタルサーバーで、Gmailにメールが転送できないと説明されているページの説明をみて愕然としました。

あるところはGmailの独自仕様で転送したメールが届かないため、レンタルサーバー側では対策を行えないや、他の業者だと転送メールの仕組み上、レンタルサーバ側では対応できないなどの説明があったりしました。

またGmailへ転送しSPFレコードが成功したレンタルサーバーもありました。そのレンタルサーバーはメールを転送した際にReturn-Pathヘッダー(メールを受信したときにenvelope-fromはこのヘッダーに格納される)を転送するドメインや空白に書き換えることでSPF認証をpassしているようでした。

他のレンタルサーバーも調べたかったのですが、契約がないため試してみることができていません。

Gmailへのメール転送の失敗があることにサポートページで言及していないレンタルサーバもありそうで、レンタルサーバーでのメール転送の際のSPF認証に対する対応はまだまだ進んでいなさそうと感じたのでした。ちなみに国内のレンタルサーバーしか調べていません。Gmailは当然というか、転送するメールにはSRSを実施していました。

 

 

ちなみに、メール送信元がSPFだけでなくDKIMとDMARCも一緒に設定している場合、SPF認証が失敗してもgmailに届く場合があります。

今回試しにメールを送信した送信元のメールサーバーはSPF、DKIM、DMARCと設定していたので、このレンタルサーバーでgmailにメールを転送してもメールは受信できましたが、SPFレコードの設定しかしていないメールサーバーから送信した場合は、gmailには届かないでしょう。