iphoneのメールアドレスについて

最近、というかここ一年、iphoneからのメールでFromに < <hogehoge@i.softbank.ne.jp>>
というように、山括弧が二重で囲まれたアドレスが届きます。
こういったアドレス表記は正しいのでしょうか?RFCを見ても山括弧を使ってのコメント自体が
正しくないという表記になっているような気がします。
弊社謹製のプログラムで誤動作を起こしているので、直したいのですが、
どこまで考慮して修正すればいいのか悩んでいます。
正しいのかどうなのか、正しいとするなら、RFCのどの部分を考慮してプログラムを作成すれば
良いのか教えていただければ。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/07/15 09:34:50
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:meefla No.1

回答回数997ベストアンサー獲得回数472

ポイント300pt

私の RFC の読みが正しければ、という前提ですが、メールヘッダーでのご質問の表記は RFC には準拠していないと思います。

この件に関する最新の RFC は RFC 5322 - Internet Message Format(2008年10月)で、それ以前の RFC 2822RFC 822 も obsolete です。
RFC 5322 の 3.4. Address Specification に、アドレス表記の書式が記述されています。

address         =   mailbox / group
mailbox = name-addr / addr-spec
name-addr = [display-name] angle-addr
angle-addr = [CFWS] "<" addr-spec ">" [CFWS]


これによれば、address とは mailbox(または group)であり、mailbox とは name-addr または addr-spec です。
name-addr は、display-name と angle-addr との組み合わせですので、
hogeta hogeo <hogehoge@i.softbank.ne.jp>
という形式になります。
addr-spec が hogehoge@i.softbank.ne.jp になるわけです。

angle-addr の書式には "<" も ">" も一つだけですので、"<<" などで addr-spec を囲うのは誤りになります。

二番目の "<" が addr-spec になりうるか(つまり、"<hogehoge" というユーザー名が存在しうるか)も考えてみましたが、3.4.1. Addr-Spec Specification3.2.3. Atom に詳述されているように、その可能性はないようです。
"i.softbank.ne.jp>" というドメインも、@以下のドメイン部が URI 扱いですからありえません。
RFC 3696 - Application Techniques for Checking and Transformation of Names4.1. URI syntax definitions and issues

以上、RFC 5322 に沿って考察しましたが、大昔の RFC 8223.4.6. BRACKETING CHARACTERS にも、

There are three types of brackets which must occur in matched pairs, and which may NOT be nested:

(カッコは閉じなきゃいけないし、入れ子にしちゃダメだよ)
とありますので、これだけでも NG と言えるのではないかと考えます。

お役に立てることを祈りつつ。

  • id:standard_one
    ガラケーのメアドは色々とRFCに則っていなかったような気が…
    おかしなことに気づくたびに修正できるように、アドレス判定部分をWebAPI化して手元で逐次修正できるようにするとかどうでしょう
  • id:reitanigawa
    今回のケースはiphoneのみなんですよね。修正自体は、すぐできる状況ではあるんですが、不正ルールのメールアドレスが来ているということに気付くのが遅くて、ちょっと問題となっています。iphoneゴラァ!って言える状況にあればいいんですが……

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません