RFCに則ったメールアドレスでダブルドットを使う方法

そういえば前に書いたとき*1RFCに従えばピリオドが二連続するアドレスは作れない」みたいな書き方をしてしまったので、補足しておかないと。
RFC2822、3.4.1. Addr-spec specificationを参照してもらえば分かるとおり、メールアドレスのlocal-part(@の前の部分)を規定する方法は二つある。*2
このうち、dot-atomという記述ではダブルドットは記述できない。しかし、quoted-string形式では恐るべき自由度*3でメールアドレスを記述することが出来る。従って携帯電話の「あり得ないメールアドレス」でもこの形式だと考えれば許されるかもしれないのだが・・・この場合、local-partは"mailaddress"の形で記述されている必要があります。*4
あと、MTAがちゃんと対応しているのか不安があったりします。RFC3696 3. Restrictions on email addressesによれば対応はMUSTのようですが。
ちなみに、dot-atomの形で書けるものはquoted-string形式で書くべきではない(SHOULD NOT)とあるので、むやみにこの形にするのも良くないようです。(まぁ、MUST NOTではない。)
というわけで、例の「謎のメールアドレス」にぶつかった場合は、quoted-string形式にしてやれば送れるかもしれません。届くかどうかについては・・・私にはそんなメールアドレスを使っている知り合いなんていないし、ez-Web機能はずいぶん前から止めているので、確認する方法はありません(笑)
そういえば、バックスラッシュを含んでいるとquoted-stringにも違反してしまうのでさすがに無理でしょうかねぇ。その場合、バックスラッシュをさらにエスケープ処理する必要があるのでしょう。多分。*5
で、何でこんなことを調べているかというと、WebAppで「メールアドレスとして書かれたものからaddr-specを取り出す処理」を自作しようとしているところな訳で・・・quoted-string形式なんて正直無視しておきたい気分なのですが(笑)まあ、深くチェックする気はないので、<>の内側を深く考えずに取り出しておこうかなぁ。そもそもAddress-specだけを書くように指示しておきたいところだが。
ついでにobs-addr-specを見るとなかなか面白いメールアドレス表記があった。メールアドレスの一部として、転送経路を指示する方法があって、アドレスの前にコロンを置いてその前にドメインリスト置く、と書かれてあった。

*1:auのメールアドレス - 泥府湾日誌

*2:obs-local-partはobsolateな記述、という意味らしいので無視しておく。

*3:エスケープキャラクタとクォーテーション以外のASCIIなら何でも良いらしい

*4:よく見る"Name" mailaddres@domainの形式のName部分はdisplay-nameとして別の定義である。混同しそうになるが。

*5:quoted-pair