以下の内容はhttps://stealthinu.hatenadiary.jp/entry/20100624/p1より取得しました。


Gmailで予想外のメールループ

Gmailからの転送でメールループのエラーで転送できない、という問い合わせがあって、MTAだけで完結しないメールループというのを初めて経験したのでメモ。


Gmailのアカウントから自メールアドレスへ転送設定をすると、転送先サーバからメールループのエラーメールが返って来るという状況でした。
確かに、Gmailから転送しようとされてきたメールに対しては「mail forwarding loop」でbounceしているというログが残っていました。
しかし、設定やログ見てもGmailには転送している記録はないため、メールループにはならないはず、と思えました。


postfixはどうやってループを検出しているんだろう?と思ってぐぐったところ「Deliverd-To」フィールドの内容と送付先が同じ場合にループ判定しているということがわかりました。

[postfix-jp: 783] mail forwarding loop

local(8)デーモンは、配送先のアドレスがすでにDelivered-To:にあるメッセージを"mail forwarding loop"としてbounceします。


ということは、どこかで「Deliverd-To」フィールドを追加してしまっている?と思って、エラーメールの内容を良く確認したところ、確かにDeliverd-Toフィールドに転送先のアドレスが書かれていました。

これがなぜついてるかはすぐにわかりました。Deliverd-Toのすぐ上に「X-Gmail-Fetch-Info」フィールドが付いていたので。

Gmailでは、他のメールサーバからPOP等でメールを取ってくるという設定が出来るのですが、これで取得したメールについては「X-Gmail-Fetch-Info」と「Deliverd-To」フィールドが追加されるようです。


つまり、あるメールサーバからGmailでPOPで取得している上に、そこ宛に転送もしようとしているので、だからループになるからエラーになった、というわけです。
これだと、MTAだけでループは完結せず、途中にPOP3サーバなどのMRAが介在してループが完成します。
なので、メールサーバのログを眺めただけでは、なぜループが発生していると言われるのかわからない、という状況になります。




以上の内容はhttps://stealthinu.hatenadiary.jp/entry/20100624/p1より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14