メールアドレスに使ってもイイ文字

infro@rokunana.com
など、メールアドレスの左側には

・アルファベットと数字
a-z A-Z 0-9

・記号
_ ! # $ % & ‘ * + / = ? \ ^ ` { } ~ | –

これだけの文字種が使えます。
逆にドコモの携帯とかで許されている「.」は本来左側には含めません

ただ、これも諸説あるというか、ゆるい制約というか
実際には「.」入りのメールアドレスも作れたりします。

この辺の話で問題になるのが「メールアドレスかどうかの判定」をしているCGIの判定基準です。

正規表現で上記の文字、記号を処理する場合に プログラマーによって実装がまちまちなために、正しく動いているメールアドレスが、特定のサイトのフォームでのみ不正なアドレス扱いを受けたりします。

ただしく実装するのが一番ですが、もともとメールアドレス自体の規定がゆるいので、


・半角英数記号1文字以上で@を含まない
真ん中
・@は必ず1つ

・半角英数1文字以上+「.」1つ以上+半角英数1文字以上
これで、メールアドレスと見なしてしまう程度のゆるい判定がいいのかな と思います。

メールアドレスを確実に取得したい場合は 認証メールを送るステップをフォームの前後に組み込めばよいので、そうじゃない場合はこの程度で充分だと思います。