単純方式 案(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 に指定されたメールアドレスが目印を含む。その他のエラーメール(桃色の矢印)は、当然目印が付いていない。そこで、前者はローカルに保存し、後者は転送すればよいと分かる。
転送する際に、目印に加えて、MAIL FROM に指定されていたメールアドレスをローカルパートに保存すれば、送信者にエラーメールを届けられる。このようなメールアドレスは、VERP(Variable Envelope Return Paths) の名で知られている。
送信者アドレスを保存する例を図2に示す。
図2 送信者アドレスを保存する例
転送したメールが example.com からエラーメールとして戻って来た場合(赤色の矢印)、元々の送信者アドレスを取り出し、その送信者にエラーメールを送り返せる。
《PREV》 |