2007年11月26日 15:15 [Edit]

送り手は控えめに、受け手はおおらかに

ドコモとAUだけではなく、ドコモとAUに悩まされているメール管理者にも今一度思い出して欲しいのが、以下の言葉。

Jon Postel - Wikiquote
In general, an implementation must be conservative in its sending behavior, and liberal in its receiving behavior.
[一般的に、送り手としては控えめに振る舞い、受け手としてはおおらかに振る舞うよう実装する必要がある]

ドコモとAUの実装が「送り手としてひかえめ」でないことは明らかだし、そのことは私も

404 Blog Not Found:ドコモもauはとりあえず"da..me."@を受け取れるようにしとくべし
ドコモならびにAUにおかれては、RFC2822準拠をユーザーに促すと同時に、上のような対策をとってみたらいかがだろうか。

と、それもentryの一番最後に書いてある。

ドコモもauもいいかげんにメールアドレス設定の仕様を直せ。の続きと補足
少なくともこの手法は本書いたり業界紙に記事を書いたりするそこそこの有名人が詳しい周辺説明をほとんど沿えずに肯定的に解釈されかねない形で公開するようなことじゃない。

とあるが、私はドコモとAUの現在の実装、いや瑕疵を肯定的に解釈など少しもしていない。

それでも前回記事を書いたのは、Postel則の前半分だけでは、今回の問題は解決しないと感じたからだ。「受け手はおおらかに」であるならば、RFC2822違反のmailも「ダメ」の一言で済ませるのではなく、「本当は行けないのだけれども、今回は特別に受け付ける」というのが望まれる姿である。

MTAの実装が大変なのは、この「受け手」と「送り手」を双方かねなければならない点にある。ユーザーからのmailを一端受け取るには、そこでは「受け手」であるので、RFC2822違反のmailもとりあえず受け取るべきで、Hotmailなどの実装はおおらかさが不足しているということになる。しかしそれを今度はドコモやAUに配達する際には、そのメールアドレスをas-isで出すのは今度は「送り手としての控えめさ」が足りないことになる。

だから、MTAのレベルで、RFC2822違反のmailをRFC2822準拠のものに変更する方法がないかを考えた結果が、前回のentryである。そもそも"da.me.."@example.comをなぜRFC2822がわざわざ残したかと言えば、このPostel即が念頭にあったからだと言っていい。そこには「@の左側はローカルな世界だから、一端そこに届いたらそこはMail Agentにまかす」が確かにある。quotedはカプセル化の手段なのだ。

「送り手としての控えめさ」と「受け手としての多らかさ」の双方を満足させる実装として、このカプセル化というのはTCP/IPの実装では実によく見られる。IPv6をIPv4ネットワークでやりとりするための6to4しかり、テキストしかやりとり出来ないことになっていたmailの世界で、バイナリーデータをやりとりするために使われるBase64しかり。RFC2822のquotedに関する規定も、また例外ではない。

私の前回のMailを「小難しい正規表現とperlやJavascriptのコードを見せびらかしたかっただけちゃうんかと」としか読めない人は、RFCの行間を見事に読み落としている。RFCは法律でも公的規格でもない。"Request for Comment"、「ご意見お待ちしております」を略記したものなのだ。法律であれば、行間を読まなくてもそれは法律が悪いということになるが、控えめなRFCを「ただの企画書」以上のものにするためには、行間を読む必要がどうしても出てくるのだ。

もちろん、このPostel則を一番読まなければならないのが、ドコモとAUであることは言うまでもない。これはRFC2822に限ったことではない。絵文字の扱い一つとっても、Unicodeのコードポイントがないおかげで苦労している人々がたくさんいる。Postel則は、社会的影響力が大きければ大きいほど、守る価値が高くなる法則でもある。両社におかれては、大企業に相応しい行動をとっていただきたいものである。

Dan the Conservative Blogger in Writing, Liberal Blogger in Reading -- Hopefully


この記事へのトラックバックURL

この記事へのトラックバック
RFCは「規定」である。「たたき台」ではない。 ところが、「Request f...
RFCの訳は「ご意見お待ちしております」では実はない。【Web屋のネタ帳】at 2007年11月26日 17:21
去年のコンブラvs邪道外道然り なぜ 大阪なのか、 12月3日無我・大阪府立体育会館第2競技場 観衆:1,100人(満員) ≪DRAGON CUPクルーグリット杯トーナメント1回戦≫ TAJIRI(12分27秒 ジャックナイフ式エビ固め)ヒロ斎藤 今 滅...
Dream Bump【cult king web】at 2007年12月04日 18:14
熱もやっと引いてきたので。 中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント - 分裂勘違い君劇場 ちょっと囓っただけの素人が自分を過信して陥る三つの罠? - カレーなる辛口Javaな転職日記
そろそろ3つのポイントについて「弾言」しとくか【404 Blog Not Found】at 2008年10月27日 18:45
この記事へのコメント
s/多らか/大らか/g
Posted by T.MURACHI at 2007年11月26日 15:37
s/一端/一旦/
Posted by ...@ at 2007年11月26日 16:27
大人な対応。
Posted by oh at 2007年11月26日 16:51
s/Postel即/Postel則
Posted by at 2007年11月26日 19:47
前回のエントリでも気になったのですが、メールの送受信の問題でメールコンテンツについてのRFCである2822を持ち出すのはちょっと筋違いじゃないですか?
メールが送れるか受け取れるかについてはメールの転送(SMTP)についてのRFCである2821にあっているかどうかで判断すべきでは?
また、今回の問題ではRFC2821とRFC2822に違反しているメールアドレスを使用している送信者のメールに対して返信できないということがほとんどのケースのようなので多くのプロバイダはPostel則に沿った運用をしているのでは?
Posted by giskard at 2007年12月01日 12:12