このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

メールアドレスに大文字小文字を識別しているケースがあるか

発言者:RODON
( Date Wednesday, August 29, 2001 19:30:23 )


メールアドレスを入力する際の注意みたいなマニュアルを作っているの
ですが、いわゆるインターネットを経由して送られていくメールのアドレ
スの中で、大文字小文字の違いまで判断するメールサーバーていうのは
あるんでしょうか。これに似た問題で、「-_,」以外の記号も使われてい
るかどうかというものあります。
初心向けのマニュアルなので、伝票に手書きされたメールアドレスの読み
間違いとか、受付端末への入力間違いの例として列挙する必要があるの
ですが、記号を含めるとなると、扱う文字をもっと増やす必要があります。

サーバーといってもいろいろなケースがあって、たとえばNotesとか、
まだ使われていると思いますが、FirstClassとか、
別のメール環境とインターネットとの間にゲートウエイを持っている
ような場合とかで、大文字小文字を識別しているものがあるのかなという
疑問です。

たまたま前任者が書いたマニュアルに「半角英数字小文字」と
いう表現があり、通常のインターネットのメールアドレスなら問題ないの
ですが、上記のような可能性があれば、書き換えないといけません。

NIFTYのIDをメールアドレスに使っている場合は、たしか昔は、ID部分が
ずべて大文字でないと通らなかったように(定かでない)思っていたので
すが、現在は小文字で書いても問題なく送信できます。

もしご存じでしたら、教えいただけないでしょうか。
よろしくお願いいたします。

田中求之 さんからのコメント
( Wednesday, August 29, 2001 20:22:13 )

大文字と小文字については、現在のインターネットのメールサーバやソフトでは
区別されないようになっているのが普通です。

ただし、原則としては、アカウント名の部分については、大文字と小文字を区別
するということになっていたはずです。ドメイン名(ホスト名)の部分は、
区別されないということだったはずです。

例外は Postmaster で、これだけは、大文字小文字がごっちゃの表記であっても
同一のアカウントとして認めるようになっていたはずです。

RFC を確認せずに、記憶で書いてますので、間違っていたら訂正してください
>御存知の方

たまちゃん さんからのコメント
( Wednesday, August 29, 2001 21:43:26 )

RFC2822 とかをざっと眺めましたが,大文字・小文字については
書いてませんでした。

何番でしたっけ?それとメールアドレスに使ってはいけない文字の
一覧もあったはずです。

ニキ さんからのコメント
( Thursday, August 30, 2001 11:22:48 )

>「-_,」以外の記号も使われているかどうか

私のアカウントには「.」(ピリオド)が入っているのもあります。

広瀬@明治大学 さんからのコメント
( Thursday, August 30, 2001 11:36:16 )

改定(追加?)された後のRFCがあるのかどうか知らないので、とりあえず
RFC822を見てみました。私の解釈では、

Takuya@isc.meiji.ac.jp
takuya@isc.meiji.ac.jp
TAKUYA@isc.meiji.ac.jp

これらが、同一の人に届くのか、それとも別々の人に届くのか(あるいは
Takuya、TAKUYAをUser Unknownと扱うのか)は、local(この場合は、
isc.meiji.ac.jpを管理しているサーバ)側が自分のポリシーで行って
良いのだと思います。

ただし、田中さんが書かれたように、Postmasterという予約アドレスに
限っては、大文字小文字の別無くポストマスターに届かなければならない
(つまり、local側と言えども、うちは大文字小文字の区別をしているから
POSTMASTERはUser Unkownだ、とかしてはいけない)ということになっている
と思います。

たまちゃん さんからのコメント
( Thursday, August 30, 2001 12:26:41 )

RFC822 で広瀬さんの書かれているように「CASE INDEPENDENCE」の
項でアドレスの扱いが書かれています。

RFC822 が改訂され RFC2822 となりましたが,そこでは case の話
は明示的には出ていません。

RODON さんからのコメント
( Thursday, August 30, 2001 13:10:30 )

言葉足らずな点がありましたことをお詫びいたします。
また、いろいろご教授いただきありがとうございます。

>「-_,」以外の記号も使われているかどうか

これは「.」(ピリオド)の間違いでした。「.」これは結構多いですね。

余談ですが、ドメイン名はいじれませんが、もしかするとホスト名
(サーバー名)は、判別してしまう環境もあるのではという疑問も
あります。

メール自体がローカルな環境に送り込まれた後は、その環境の
判断で振り分けられすということを考えると、RFCにかかれたルールを
無視する(というかそれ以前から独立した環境が存在していて、RFCと
整合をとれない)場合があるのではないかということです。

アカウント名について、大文字小文字に関してはローカルポリシーに
依存というというRFCのルールがあるということですので、今回は
それを理由に「大文字もありえる」ということで仕事すすめます。

検索エンジンなども使って該当する情報をさがしてみたのですが、RFC822
などインターネットでのルールに付いてはそれなりにあるのですが、
私が望んでいるような、別環境とブリッジする場合の事例があればと
思った次第です。参照する時間と力量を持っておりませんでした
ので、みなさまのお知恵をお借りしました。
ありがとうございました。

p さんからのコメント
( Thursday, August 30, 2001 21:31:02 )

URIの一般構文を定めた
http://www.ring.gr.jp/pub/doc/RFC/rfc2396.txt

では、mailtoのアドレスについてどのように
うたっているのでしょうか。

These design concerns are not always in alignment. 
For example, 
it is often the case 
that the most meaningful name for a URI component would require characters 
that cannot be typed into some systems. 
The ability to transcribe the resource identifier 
from one medium to another 
was considered more important than having its URI consist
 of the most meaningful of components. 
In local and regional contexts and with improving technology, 
users might benefit from being able to use a wider range of characters; 
such use is not defined in this document. 

とありますが、ようするに規定しないよ、、ということでしょうか?

→  rfc2396

umigon さんからのコメント
( Wednesday, November 07, 2001 20:19:20 )

Emailアドレスの入力文字制限プログラムを作成するにあたって
正確な情報を知りたいのですが、どなたか教えていただけない
でしょうか?要は、「Eメールアドレスに使ってはいけない文字」
を知りたいのです。或いは、Eメールアドレスを構成する文字群は
0-9 a-z A-Z @ と。。。。っていうのでもいいと思います。
RFC内をうろうろ探しているのですが、一覧みたいなものが
どーしても見つかりません。
どなたか助けてもらえませんか?

今泉克美 さんからのコメント
( Wednesday, November 07, 2001 22:09:09 )

私が知っている最良の、しかもRFCを研究済みの
リソースポインタは

インターネットメールの注意点
http://www02.so-net.ne.jp/~hat/imail/cover.html

です。

このHTML文書の中に
メールアドレスの書き方に関するリソースがあります。
http://www02.so-net.ne.jp/~hat/imail/sec08.html#s_address


今泉克美 さんからのコメント
( Wednesday, November 07, 2001 22:34:38 )

phpで、正規表現で、電子メールアドレスが妥当かどうかの
検査が出来るとか。

http://www.hotwired.co.jp/webmonkey/2000/02/index4a_page3.html

PERL系でも似たような正規表現検査があるはずと思います。

今泉克美 さんからのコメント
( Thursday, November 08, 2001 11:52:49 )

失礼しました。
PERLの人なら
モジュール Email::Valid
か
モジュール Mail::CheckUser
を使うのでしょうか。
#そういえば
ANOTHER-HTML-LINTをWINDOWSマシンに導入したときに
みかけた覚えがありました。

どうしても正規表現で、ということなら
http://www.din.or.jp/~ohzaki/perl.htm#Mail
にスゴイのが書いてあります。
(私には、意味がわっぱりわかりません。RFCを読めと言う事でしょうか)

重松修 さんからのコメント
( Thursday, November 08, 2001 12:01:41 )

私が使用している正規表現は、

define(
    'REGEX_PATTERN_MAIL_ADDRESS',
    '^[_a-z0-9-] (\.[_a-z0-9-] )*@[a-z0-9-] (\.[a-z0-9-] )*(\.[a-z]{2,3})$'
);

if(!eregi(REGEX_PATTERN_MAIL_ADDRESS,$mail_address)){
   die('メールアドレスが不適当');
}

ですね。

if (!ereg('^[-!#$%&\'* \\./0-9=?A-Z^_`a-z{|}~] '.
'@'.
'[-!#$%&\'* \\/0-9=?A-Z^_`a-z{|}~] \.'.
'[-!#$%&\'* \\./0-9=?A-Z^_`a-z{|}~] $', $last)) {

だと、メールアドレスが、\ だとか、? から始まってもかまわないし、それら一文字でもいいように思います。
あと、メールアドレスとして、IP を直接指定することがないのならば、
私のやり方の方が、ドメインの最後が 2--3 文字のアルファベットのみで構成されることを区別しますから、
ほんのちょっと cool かも。:-)