カレンダー

11 | 2016/12 | 01
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

広告



最近の記事

カテゴリー

DATE: CATEGORY:DIARY


だいぶ前の以下の記事にて。
メールアドレスの大文字小文字は区別されるよ:なんとなしの日記メールアドレスの大文字小文字は区別されるよ:なんとなしの日記hatena
この件で、なぜか四面楚歌。メールアドレスは大文字・小文字は区別されるはずなんですが、「区別されないよ」って人に囲まれたので、あれれれ???ってなってしまった...


結論として
「仕様としては、"区別する"だけど、運用上の実態は"区別されていない"」
とまとめていました。

この点について「いやいや、仕様は「区別しない」が正しいですよ、」
というコメントを頂きましたので、改めて再考してみました。

まずは、頂いたコメントについて。

SMTP の根拠を RFC822 に求めるのはいささか RFC が古いと思われます。


まずは、ここ、おっしゃるとおり!
恐らくRFC2822 の事かと思いますが、その通り。
SMTPについては、2008年に公開された、
RFC 5321/5322 を確認すべきでした。

で、本論部分に入ります。
コメント頂いた内容のポイントを抜粋します。

RFC5321 (SMTP) の 4.1.2 で「ローカル部の大小文字を区別するメールボックスを定義することは、
避けなくてはいけない(SHOULD avoid)」と記述。

RFC822 の 2.4 の「MUST take care to preserve the case of mailbox local-parts.」は、ローカル部の大小文字を保持しろとは書いてあるが、大小文字違いのメールボックスを区別しろとも同一視しろとも書いてない。

RFC通りの解釈をすると、ABc@... というメールアドレスは 必ず ABc@... として保持され(大小文字を変更せず)、かつ、 abc@ でも aBC@ でも(区別せず)受信するのが正しい実装。


というわけで、ご指摘頂いた部分含めて
改めてRFCを確認・整理してみたいと思います。

前記事で根拠とした2.4 の記載



RFC2821から、RFC5321に変更になった際の
「2.4 一般的な構文の方針とトランザクションモデル」
についての記載の変化点(赤文字記載)を確認。

RFC2821の時の記載

The local-part of a mailbox MUST BE treated as case sensitive.
Therefore, SMTP implementations MUST take care to preserve the case of mailbox local-parts.
Mailbox domains are not case sensitive.
In particular, for some hosts the user "smith" is different from the user "Smith".
However, exploiting the case sensitivity of mailbox local-parts impedes interoperability and is discouraged.

メールボックスのローカルパートは大文字、小文字を区別しなければいけません(MUST)。よって SMTP の実装はメールボックスのローカルパートの大文字/小文字を保つことに気をつけなければなりません(MUST)。メールボックスのドメインは大文字小文字を気にしない。具体的には、あるホストでは、ユーザー "smith" と"Smith" は異なるユーザーです。しかしながらメールボックスのローカルパートで大文字、小文字を区別して利用することは相互運用の妨げになるので推奨されません。


RFC 5321 の記載

The local-part of a mailbox MUST BE treated as case sensitive.
Therefore, SMTP implementations MUST take care to preserve the case of mailbox local-parts.
In particular, for some hosts, the user "smith" is different from the user "Smith".
However, exploiting the case sensitivity of mailbox local-parts impedes interoperability and is discouraged.
Mailbox domains follow normal DNS rules and are hence not case sensitive.

メールボックスのローカルパートは大文字、小文字を区別しなければいけません(MUST)。よって SMTP の実装はメールボックスのローカルパートの大文字/小文字を保つことに気をつけなければなりません(MUST)。具体的には、あるホストでは、ユーザー "smith" と"Smith" は異なるユーザーです。しかしながらメールボックスのローカルパートで大文字、小文字を区別して利用することは相互運用の妨げになるので推奨されません。メールボックスのドメインは通常の DNS ルールに従います、よって大文字、小文字を区別しません。


ここは、ローカルパート部分の記載については
変化点はありません。

指摘頂いた4.1.2 の記載



以下の箇所を根拠として「区別しない」が正しいのではないか、
というコメントを頂きましたので、確認してみます。
(念のため、RFC2321と合わせて確認)

--------------------
4. SMTP 仕様
4.1. SMTP コマンド
4.1.2. コマンド引数の構文
--------------------

RFC 2321 の記載

While the above definition for Local-part is relatively permissive, for maximum interoperability, a host that expects to receive mail SHOULD avoid defining mailboxes where the Local-part requires (or uses) the Quoted-string form or where the Local-part is case-sensitive.

最大限の相互運用性のために、Local-part について前述した定義は比較的自由です、メールを受信するのを期待するホストは Local-part が Quoted-string 形式を要求(もしくは使う)もしくは Local-part が大文字/小文字を区別するメールボックスを定義することを避けるべきです (SHOULD)。


RFC 5321 の記載

While the above definition for Local-part is relatively permissive, for maximum interoperability, a host that expects to receive mail SHOULD avoid defining mailboxes where the Local-part requires (or uses) the Quoted-string form or where the Local-part is case-sensitive.


ここは、新・旧の記載に違いなし。

RFC確認した上で、再びまとめ。


RFC5321を改めて確認しましたが、やはりここ。

The local-part of a mailbox MUST BE treated as case sensitive.
Therefore, SMTP implementations MUST take care to preserve the case of mailbox local-parts.
In particular, for some hosts, the user "smith" is different from the user "Smith".

メールボックスのローカルパートは大文字、小文字を区別しなければいけません(MUST)。よって SMTP の実装はメールボックスのローカルパートの大文字/小文字を保つことに気をつけなければなりません(MUST)。具体的には、あるホストでは、ユーザー "smith" と"Smith" は異なるユーザーです。


「MUST take care to preserve the case of mailbox local-parts.」については、
確かに保持する事だけを記載していますが、その前後の文面を合わせると

・メールボックスのローカルパートの大文字/小文字は区別する(MUST)
・それゆえ、SMTPでは、ローカルパートの大文字/小文字を保つ事(MUST)
・あるホストでは、"smith" と "Smith" は別ユーザである
 (for some hosts というのが気になるけど)

この記載を見る限り、やはり「区別する」と書いてあると
理解するのが正しいのではないかと考えます。

では、なぜ「4.1.2」のような記載があるのか。
これは、上記に続く、以下の記載に準拠していると想像します。

RFC5321

However, exploiting the case sensitivity of mailbox local-parts impedes interoperability and is discouraged.

しかしながらメールボックスのローカルパートで大文字、小文字を区別して利用することは相互運用の妨げになるので推奨されません。


つまり、まとめると書いてあるのは、

「メールボックスのローカルパートの大文字/小文字は区別する事!」
"しかしながら"
「メールボックスのローカルパートで大文字/小文字を区別して利用するのは運用上、推奨しない」

まー、上記自体はどーゆーこっちゃ!?というのが正直な感想ですが・・・
「相互運用の妨げになる」の部分の理由が書いてないため、以下は想像ですが、
「仕様上、区別はするけれど、SMTPのメール配送の運用上、実運用上では、
区別しないSMTPサーバがあるかもしれないので、区別するものがあると
運用上の妨げになるので、区別して利用するのは、出来るだけやめよう」
と書いてあるのではないかと想像しました。

結果、

「仕様としては、"区別する"だけど、
 メールボックスの運用実態としては
 "区別しない"運用になっている」

と、前回記載した結論から変化ない、というのが
現時点での私自身の再考結果です。

ご指摘・コメント等、大歓迎です。

Comment

コメントの投稿

管理者にだけ表示を許可する


トラックバック


この記事にトラックバックする



copyright © なんとなしの日記 all rights reserved.
内職☆在宅ワークの最強は?アフィリエイト!. 初心者だってカッコ良いホームページ作るぅ!
Powered by FC2ブログ
Related Posts Plugin for WordPress, Blogger...