_ うーん。→ 【Exchange Onlineに関するお知らせ】 ヘッダー サイズの超過によって Exchange Online からのメール配信に失敗する場合がある
_ MS の Office365 はリレーするメールに長大なヘッダを付加するのはよく知られていることなんだけど、最近は肥大化がさらに進んで、受け取り側で headers too large で蹴られるような事態になってるそうで。このお知らせにある例では、32KB が上限だったようなんだけど、32KB って小さすぎる値じゃないよねぇ。
_ 調べてみたところ、sendmail のデフォルトがまさに MaxHeadersLength=32768 だった。つまり、意図してヘッダサイズを小さな値に制限していなくても、sendmail をデフォルトのままで使っていればそれだけで O365 からのメールの受け取りに失敗することがある、ということ。ちなみに postfix のデフォルトは header_size_limit = 102400。うちの自宅サーバは 16KB に設定変更している(以前は 8KB にしてたけど、DKIM やらなんやらで肥大化傾向なので増やした)。
_ で、MS のお知らせ曰く、
上述のエラーが発生した場合にはエラーを返しているサーバーにてヘッダーサイズ上限値について最適な設定値についてご検討頂くことをお勧めいたします。えーと、なんだか巨大なヘッダを付与している自分たちは悪くない、ヘッダをたった 32KB に制限しているお前たちが悪いんだと読めるんですけどどうなんですかね。どんだけあれば足りるんですかね。1MB あれば足りますか。
_ RFC1855 Netiquette Guidelinesにはこう書かれている。
50KB を越えるようなファイルはメールじゃなくて別の手段を使うか、小さなサイズに分割して送ろうぜ、と。今どきはこんな時代遅れすぎる文言を気にする必要はないが、この RFC が書かれた 1995年ごろはそう言われていた。50KB のファイルですらデカすぎるからやめておけ、と言われていた時代から、ヘッダだけで 32KB を越えてしまう時代に20年ちょっとで進化したというのは長いんだろうか短かいんだろうか。- Know how large a message you are sending. Including large files such as Postscript files or programs may make your message so large that it cannot be delivered or at least consumes excessive resources. A good rule of thumb would be not to send a file larger than 50 Kilobytes. Consider file transfer as an alternative, or cutting the file into smaller chunks and sending each as a separate message.