RFC によるメールアドレスの local-part におけるピリオドの取り扱いについての考察

http://hxxk.jp/2004/10/23/1228

記事データ

投稿者

望月真琴

投稿日時

2004-10-23T12:28+09:00

タグ
概要

RFC 2822 における、 Some of the structured header field bodies also allow the period character (".", ASCII value 46) within runs of atext. An additional "dot-atom" token is defined for those purposes. という記述と、 If the string can be represented as a dot-atom (that is, it contains no characters other than atext characters or "." surrounded by atext characters) という記述が、 メールアドレスの@の直前にはピリオドは使ってはいけない ということの根拠になると思います。

リプライ

2 件のリプライがあります。

記事本文

よそで参考記事として出されるのは嬉しい

RFCを読まなかった携帯キャリアの罪 - Webビジネスコンサルタントのネタ帳のコメント欄にて、北村さん ( 曉に死す ) が メールアドレスに使える文字を参考記事として提示して下さっていました。 自分で活用しやすいように整理して web に記録していくので、必要とされる情報が私の記録の中にあるのならどうぞご活用ください、というのがこのサイトのスタンスです と言っているのですが、実際に活用されると非常に嬉しいものです。

メールアドレスに使える文字の補足

補足というか要点のみの抜粋ですが、 Some of the structured header field bodies also allow the period character (".", ASCII value 46) within runs of atext. An additional "dot-atom" token is defined for those purposes. ( いくつかの構造化されたヘッダフィールドボディはまた、一連のatext中ピリオド(".", アスキーコード46)が許可されている。 追加の「dot-atom」トークンがその目的で定義される。 ) という記述と、 If the string can be represented as a dot-atom (that is, it contains no characters other than atext characters or "." surrounded by atext characters) ( その文字列がdot-atomとして表現され得るならば(つまり、atextとatextに囲まれた「.」以外の文字が存在しないならば) ) という記述が、 メールアドレスの@の直前にはピリオドは使ってはいけない ということの根拠になると思います。

例を挙げて示すと、

これらのような local-part に存在する "." は、 atextに囲まれた「.」 ではありません。

RFC 2821 ? RFC 2822 ?

RFCを読まなかった携帯キャリアの罪 - Webビジネスコンサルタントのネタ帳にて根拠として取り上げられている RFCRFC 2821 の方ですが、私は RFC 2822 の方で前項のように理解していました。 これは単純に検索で Request for Comments: 2822 - Internet Message Format を見つけただけであって、 RFC 2821 の方を読むべきなのか RFC 2822 の方を読むべきなのかはあまり気に留めていませんでした。 RFC 2822 の方も知りたい情報のみを斜め読みしただけですし。

@の直前にピリオドがある等、RFC に準拠していないアドレスを含むメッセージを送受信できないでは、

概要

この資料では、Exchange 2000 Server と Exchange Server 2003 で、インターネット メール アドレスが xxxx.@xxxxxx や xx..xx@xxxxxx のように、ピリオドがメール アドレスの最後についていたりピリオドが連続しているような RFC2821 に準拠していないアドレスを含むメールを送受信できない現象について記述しています。

原因

Exchange 2000 Server と Exchange Server 2003 の SMTP サービスは、アドレスのフォーマットが RFC2821 に準拠していない場合エラー "501 5.5.4 Invalid Address" を返します。 RFC2821 では、"@" の前の文字列をピリオド"." で区切ることを許可しておりますが、区切り文字であるピリオドや"@" 等を連続して使用することを許可しておりません。 従いまして、このようなアドレスを持ったメッセージの送受信を拒否しています。

これは Exchange 2000 Server と Exchange Server 2003 の仕様です。

と書かれてありますし、 RFC 2821 を参考にした方が良いのかもしれません。

RFC 2821 を読んでみる

Request for Comments: 2821 - Simple Mail Transfer Protocol の、メールアドレスに関する部分の記述を読んでみると、

Mailbox = Local-part "@" Domain

Local-part = Dot-string / Quoted-string
      ; MAY be case-sensitive

Dot-string = Atom *("." Atom)

Atom = 1*atext

Quoted-string = DQUOTE *qcontent DQUOTE

String = Atom / Quoted-string

と書かれてあります。 Dot-string = Atom *("." Atom) とあり、かつ Atom = 1*atext とあるため、 Dot-string = 1*atext *("." 1*atext) と読み換えて良いでしょう。

これは Request for Comments: 2822 - Internet Message Format における dot-atom-text = 1*atext *("." 1*atext) という記述と同じですので、同様に If the string can be represented as a dot-atom (that is, it contains no characters other than atext characters or "." surrounded by atext characters) であると考えて良いと思います。

ただ、私は先に Request for Comments: 2822 - Internet Message Format を読んでいたからこの根拠を持っているわけであって、 Request for Comments: 2821 - Simple Mail Transfer Protocol だけを読んでいたら分からなかったかもしれません。 dot-atom-text = 1*atext *("." 1*atext) という記述自体が、 If the string can be represented as a dot-atom (that is, it contains no characters other than atext characters or "." surrounded by atext characters) であることを表しているのならば、 Request for Comments: 2821 - Simple Mail Transfer Protocol だけでも xxxx.@xxxxxx や xx..xx@xxxxxx のように、ピリオドがメール アドレスの最後についていたりピリオドが連続している local-part は RFC 2821 に準拠していないと判断できると思いますが、この記述方法がそれを表しているかといういうことまでは私には分かりません。

関連リソース

トラックバック送信先

リプライ

2 件のリプライが送られています。

2006-06-02T12:32+09:00 - DoCoMoの説明にある「RFCに準拠しています」はウソ < Web屋のネタ帳

NTTドコモのこのページがいつからこのように書かれているのかは知らないが、こう...

2006-11-22T15:34+09:00 - メールあれこれ RFC2821 RFC2822 < 音のない声

 なんかこう、携帯電話でE-Mailが普及してからというもの、アドレスがありえないことになってる人が多い気がする。以前Hxxk.jpさんで紹介されていたよ...

この記事に対するご意見やご質問、ご感想などありましたらこのフォームに簡潔に記入して下さい。 簡潔に記入できない場合や、関連記事にてご意見をお寄せいただく場合は、ご自身の weblog にて記事を書かれた上で あてにトラックバックとして送信してください。

記入フォーム

補足情報

著作、講演、制作実績など