Diary

新しいドメイン名


少し前に「バグ報告」のついでに教えていただいたのだが、ある方が「バグ報告」用のメールフォームから送信しようとするとメールアドレスのエラーになるという。
その理由が、その方のアドレスが「.info」という新しいドメイン名のものだからだと知って当惑してしまった。(そんなドメインが出来ていたなんて全然知らなかった。お恥ずかしい限りである。)
私がなぜ当惑したかというと、今までメールアドレスのチェックに
/^[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,3}$/
という正規表現を使っていたからだ。
これはドメイン名がアルファベットの2文字から3文字であることを前提にしていたので、「.info」が付いたメールアドレスがエラーになるのは当然である。
早速フォームメールのCGIだけは書き直したのだが、まだ書き直してないものがいくつかあるかもしれない。
フォームメール以外の場合は、それ程支障はないと思いますが、修正されたい場合は下記のように書き直して下さると幸いです。(どこを書き直したら良いか分からない場合はメールにてお尋ね下さい。)
/^[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,4}$/

※余談ですが、上記のメールアドレスチェックで、最初の「^」と最後の「$」はセキュリティー面を考慮すればかなり重要だと思っているのですが、いかがでしょうか?(特にフォームメールCGIで、sendmailのパスのすぐ後に投稿者のメールアドレスを指定するような書き方がされている場合には絶対必要だと思うのですが。)ただし私の考えるものには、よく抜けている事がありますので、何か気の付かれた事がおありになった方は教えていただけると嬉しいです。

追記:
今これを書いた後で調べてみたら何と.museumなんていうドメインも出来るそうで、そうするといっそ以下のようにしてしまった方がいいのかもしれません。
ついでに今見ていて気付いたのですが、[](Character Class)内では「.」と「-」の前の「\」は、いらなかったですね。ですので以下のようにすればいいと思います。
/^[\w.-]+\@[\w.-]+\.[a-zA-Z]+$/
2001年11月01日(木) No.13 (日記)

No. PASS