IIJ
技術研究所
山本和彦
2009年5月
1. MAIL FROMを書き換える方式の比較
2. マークの導入
3. 送信者アドレスの保存
この文章を読む前に、必ず「SPFと転送の相性問題に対する解決案」を読んでいただきたい。
1. MAIL FROMを書き換える方式の比較
SPF と転送の相性問題を解決するための MAIL FROM を書き換える方式には、以下の2つが知られている。
- 単純方式(SPFと転送の相性問題に対する解決案の2つの方式)
- SRS(Sender Rewriting Scheme)
両者の方式とも、エラーメールはループを起こさない。ただ、それぞれの方式には、利点と欠点がある。
単純方式は、転送サーバが単独で導入可能であり、SRS よりは普及しやすいと考えられる。しかし、エラーメールを送信者に送り返せないという欠点を持つ。
一方 SRS は、エラーメールを送信者に送り返せるが、転送サーバすべてが SRS の書式に対応しなければならず、普及しにくいと考えられる。
この記事では、両者の中間解として、単独の転送サーバで導入でき、しかも完全ではないがエラーメールを送信者に送り返せる方式を紹介する。この方式は、大手 ASP で実際に利用されている。
2. マークの導入
単純方式 案(1)では、「転送したメールがエラーとなって戻って来たエラーメール」と「その他のエラーメール」を区別できなかった。両者を区別するためには、転送のために MAIL FROM を書き換える際に、ローカルパートに何らかの目印を付けるとよい。
図1 は、“=mark=”という目印を使用した例である。
図図1 “=mark=”という目印を使用した例
alice@example.jp が bob@example.net にメールを送り、bob@example.net は bob@example.com へ転送している。example.net では、転送の際に MAIL FROM を bob@example.net で書き換えるとともに、そのローカルパートに“=mark=”を挿入している。
転送したメールが example.com からエラーメールとして戻って来た場合(赤色の矢印)、RCPT TO に指定されたメールアドレスが目印を含む。その他のエラーメール(桃色の矢印)は、当然目印が付いていない。そこで、前者はローカルに保存し、後者は転送すればよいと分かる。
3. 送信者アドレスの保存
転送する際に、目印に加えて、MAIL FROM に指定されていたメールアドレスをローカルパートに保存すれば、送信者にエラーメールを届けられる。このようなメールアドレスは、VERP(Variable Envelope Return Paths) の名で知られている。
送信者アドレスを保存する例を図2に示す。
図2 送信者アドレスを保存する例
転送したメールが example.com からエラーメールとして戻って来た場合(赤色の矢印)、元々の送信者アドレスを取り出し、その送信者にエラーメールを送り返せる。