概要

インターネットのメール(以下メール)のアドレスに利用できる文字種

なんとか@exmaple.com

のなんとかの部分に使える文字は

  • アルファベットの大文字と小文字
  • 数字(0-9)
  • 以下の記号
    - _ . * ! # $ % & ’ * + / = ? ^ ` { | } ~

quoted-stringと言って""で囲むと何でも良くなるので、なんとかの部分が"で始まって"で終わるのなら正しいとすれば良いのでは無いでしょうか
以下の解説にどこでも安心して利用できる文字と記号という区分がありますが、これは一般ユーザが気にせず使えるという区分なので、メールアドレス登録の際にこれ以外の記号が混ざっているからといって間違いであるとするのは良くないです。((+記号が入ってるメールアドレスを使って居て登録出来ないパターンが多い気がします)

駄目なパターン

  • メールアドレスの中に@が2回以上出てくる
    例 hoge@name@example.com
  • 本来のルールでは.は連続して使えないとか@のすぐ左にあるのは駄目だけど、昔はdocomoでこのタイプのアドレスが作れたので弾くと登録出来ない人が出る

メールアドレスに使える文字の詳細

どこでも安心して利用できる文字と記号

メールでの利用やwebサイトに掲載の際に安心して利用できる文字種は以下の通り

  • アルファベットの大文字と小文字
  • 数字
  • -(ハイフン)
  • _(アンダーバー)
  • .(ピリオド)但し利用制限あり(@の直前は不可、連続しての利用も不可)

仕様的に利用が可能な物

webサイトに書いたりする際にちょっと注意が必要だけどメールアドレスとしては問題無いもの

どこでも安心して利用できる文字と記号と追加で

  • * ! # $ % & ’ * + / = ? ^ ` { | }

の各記号

それ以外の文字

””で@の左側を囲ってしまえば↑の制限は気にしなくて良い

メジャーなプロバイダのメールアドレスで使える文字

私がメジャーだと思うプロバイダでメールアドレスに使える文字の載ってるページ
特に書いてないのは半角英数字とハイフン、アンダーバー、ピリオドが利用可

biglobe
英小文字、メールアドレスの先頭はアルファベットか数字の指定あり
au-one
先頭文字は必ず半角英小文字として下さい。末尾文字にアンダーバー「_」、ハイフン「-」、ピリオド「.」は使えません。また、ピリオド「.」は連続で使えません。の注意書きあり
nifty
英字は小文字だけ
plala
英字は小文字だけ
Yahoo!BB
yahooはハイフンとピリオドも使えないらしい
JCOM
メールアドレスに関するページが見つからなくなった。以前調べた時は半角英数字とハイフン、アンダーバー、ピリオドが利用可だった
DTI
英字は小文字だけ。アンダーバーが使えない
ocn
英字は小文字だけ。先頭文字は英小文字だけ。ocnで始まる-tで終わるのは連続する..を含むのはだめ。末尾に-と.は使えない。

資料がPDFなので注意。ocnオプション変更申込書

ODN
英字は小文字だけ。ピリオドが使えない
NTT Docomo
2009年4月以前に取得したアドレスについてはピリオドが連続していてもいいし、@の直前にあっても良かったため注意
SoftBank
3〜30文字。先頭は英字のみ
ディズニーモバイルも同じ

どうして使える記号が限定されているのか

RFC2822 3.4.1.より((RFC2822はRFC5322にバージョンアップしている)

addr-spec = local-part ”@” domain

addr-specはローカルで解釈される文字列、続いて@マーク(”@”, アスキーコー64)、続いてインターネットドメインを持つ、固有のインターネットでの識別名である。ローカルで解釈される文字列はquoted- stringまたはdot-atomのいずれかである。その文字列がdot-atomとして表現され得るならば(つまり、atextとatextに囲まれた「.」以外の文字が存在しないならば)、dot-atom形式が使われるべき(SHOULD)であり、quoted-string形式は使われるべきではない。

dot-atom = [CFWS] dot-atom-text [CFWS]

atomとdot-atomは共に1つのかたまりと解釈され、文字列の構成要素である。語義的に、任意のコメントや残りの文字を囲むFWSはatomの一部ではない

atext = ALPHA / DIGIT / ”!” / ”#” / ”$” / ”%” / ”&” / ”’” / ”*” / ”+” / ”-” / ”/” / ”=” / ”?” / ”^” / ”_” / ”`” ”{” / ”|” / ”}” / ”~”

dot-atom-text = atextとatextに囲まれた「.」以外の文字が存在しない

つまりどういうことか

  1. メールアドレスはローカル部分@ドメイン
  2. ローカル部分はquoted- stringまたはdot-atomのいずれか
  3. dot-atomはatextとatextに囲まれた.
  4. atextは
    • アルファベット
    • 数字
    • 以下の記号

      ! # $ % & ’ * + - / = ? ^ _ ` { | } ~ .
  5. quoted-stringは\"\"で囲まれた文字列

    ただしdot-atomで表現できない場合のみ使用すること

上記をまとめると、メールアドレスに使える文字は

アルファベット 数字 ! # $ % & ’ * + - / = ? ^ _ ` { | } ~ .

となります。.は先頭と最後には利用することができません。

(atextに囲まれている場合のみ.が利用可のため)
上記以外のものもquoted-stringにすれば使えます

例:”hoge..[bar]”@test.jp(hoge..[bar]@test.jpだと規約外)

メールアドレスに関する記述のあるRFC

RFC2822(RFC2822日本語訳)
Internet Message Format
2008年にRFC5322にバージョンアップしている
RFC5322(RFC5322日本語訳)
Internet Message Format
RFC2322とRFC5322の差分
RFC3986(RFC3986日本語訳)
Uniform Resource Identifier (URI): Generic Syntax

こちらは別にメールアドレスに使える文字や記号の本質には関係ないものですが、ここでいろいろ制限がかかる(WEBページに直接書いてはいけない記号が指定されている)ことによって各プロバイダでは↑のどこでも安心して利用できる文字と記号しか使えないようにしてあることが多いようです

更新履歴

  • 2009/02/08プロバイダの説明ページのリンクが切れてたりしたので、修正した。
  • 2009/04/04ドコモの仕様変更があったというニュースを見たので追加した。
  • 2011/11/28 auのメール仕様ページを修正。内容も変わっていたので修正した。
  • 2014/05/15 RFC2822がRFC5322にバージョンアップした事を書いた