メールアドレスの履歴

メールアドレスで使用できない文字の種類がわかるサイトを教えてください。
http://q.hatena.ne.jp/1133015187

3 回答者:hamaran 2005-11-27 00:12:49 満足! 20ポイント


http://www.puni.net/~mimori/rfc/rfc2822.txt



メールアドレスに使用できる文字列は基的にRFC2822で規定されています。

そこには、携帯電話用アドレスやパソコン用アドレスといった違いはありませ
で、「使用できない文字」ではなく「使用できる文字」になりますが、
↑のリンク先がRFC2822の和訳文で、よく読み解くと書いてあります。

具体的には、

  • 文字文字のアルファベット
  • 数字
  • !#$%&`+-*/’^{}_ ←記号(全部抜き出したつもりだけど自信ナシです)
  • そして .” (ドットですね)


実際にはRFC2821もかかわってきて、”.”(ドット)は
使用していいものの、連続していてはいけないし、
ローカル部(@の左側)の始めや終わりにドットがきてもいけませ

実際にどれがつかえてどれがダメなのかは、ローカルの規定によるので、
各プロバイダや携帯電話会社などによって異なります。
場合によってはRFCに準拠していないものを認めている所もあります。
たとえばDoCoMoでは、ドットが連続していてもOKだったかと思います。



ああ…、エスケープとかできのね…。CSV並のめどくささ。ちゃとしたパーサー(文脈自由言語だっけ?)でやらないと無理なのか。

>http://www.tt.rim.or.jp/~canada/comp/cgi/tech/mailaddrmatch/
>
メールアドレスに一致する正規表現は「ありませ」。

$mail_address =~ /[a-zA-Z0-9_-]+\@[a-zA-Z0-9_-]+\.\w+/;

じゃ駄目なの?という方もいらっしゃるかもしれませが、
以下のアドレスを見てください。これらは実在する(もう削
除しましたが)アドレスです。

canada(@home)@tt.rim.or.jp
"me@home"@digital-canvas.com
Tom&Jerry/$100.00@digital-canvas.com
canada@[192.168.0.1]
<<

バリデーションする場合は、「メールアドレスっぽいもの ⊃ メールアドレス」 になるようにすればいいかな。