メールアドレスに全角が混ざると届かない──全角の@・.・見えない空白の見分け方
メールアドレスに全角の@や.、全角スペース、ゼロ幅スペースが混ざると、見た目が同じでも届きません。混ざる3つの経路と、道具を使った見分け方、書類やフォームでの安全な書き方を整理します。
この記事のポイント
- 全角の@や.と、見えない空白の3系統が混ざると見た目が同じでも届かない
- 入力欄の自動トリムはASCIIの空白だけで、全角スペースは残る
- 「不可視文字を取り除く」でU+200BやU+FEFFを見つけて消せる
- Q.
- メールアドレスに全角の@が入っていると届かない?
- A.
- 届きません。メールアドレスは半角の英数字と記号で書く前提の仕組みで、全角の@は別の文字として扱われます。入力フォームでエラーになるか、宛先不明で戻ってきますので、半角に直してから送信し直してください。
会員登録のフォームに、確かに正しいメールアドレスを入れた。画面には「[email protected]」と出ている。それなのに「形式が正しくありません」と言われるし、手紙のつもりで送ったメールは戻ってくる。何度見ても間違っていない。
結論を先に書きます。
見た目が同じでも、メールアドレスの中に「別の文字」が混ざっていると届きません。混ざるのは、全角の記号、前後に残った空白、目に見えない文字の3系統です。 原因は目で探しても見つからないので、文字の種類を機械的に見分ける方法を知っておくと早く片付きます。
見た目は同じで、中身が別の文字
メールアドレスは、もともと半角の英数字と少しの記号で書く前提で作られています。メールの送受信の規格(RFC 5321 の SMTP など)は、ドメイン名に使える文字を英字・数字・ハイフンに限っています。全角の文字は、その外側にあります。
見た目がそっくりで、混ざりやすい文字を並べてみます。
| 見た目 | 正しい文字 | 紛れ込む文字 | 文字コード |
|---|---|---|---|
| @ | 半角の@ | 全角の@ | U+FF20 |
| . | 半角のピリオド | 全角の. | U+FF0E |
| (空白) | なし | 全角スペース | U+3000 |
| (空白) | なし | 改行できない空白(NBSP) | U+00A0 |
| (何も見えない) | なし | ゼロ幅スペース | U+200B |
| (何も見えない) | なし | BOM | U+FEFF |
最初の2つは、日本語入力をオンにしたまま打つと起きます。全角の@は、画面上では半角より少し横に広いだけで、フォントによってはほとんど違いが分かりません。
混ざる3つの経路
1つ目は、日本語入力がオンのままで打った場合。 数字や記号が全角になります。変換のとき、候補を確定せずに送信してしまうと、全角の英字が混ざることもあります。
2つ目は、コピーしたときに前後へ付いてきた空白。 Word や PDF、メールの署名から貼り付けると、アドレスの前後に空白が付くことがあります。半角の空白なら、多くの入力欄が前後を自動で取り除いてくれます。HTML の仕様でも、メール用の入力欄は「前後の ASCII の空白を取り除く」と定められています。ところが、全角スペース(U+3000)や NBSP(U+00A0)は ASCII の空白ではないので、取り除かれずに残ります。見えないのに、アドレスの一部として扱われてしまうわけです。
3つ目は、見えない文字そのもの。 Web ページからコピーしたとき、ゼロ幅スペース(U+200B)が混ざることがあります。文章の折り返し位置を指示するための文字で、画面には何も表示されません。テキストファイルの先頭に付くBOM(U+FEFF)も、同じく見えません。これらがアドレスの途中や末尾に入ると、「[email protected]」という文字列が「[email protected]」+見えない1文字になり、別のアドレスとして扱われます。
見分け方:目ではなく、道具に頼る
見た目で探しても、まず見つかりません。次の順で確かめます。
- 文字数を数える。 見えている文字数と、入力欄やエディタが数える文字数が違えば、見えない文字があります。
- 手で打ち直す。 コピーせずに、日本語入力をオフにして最初から半角で打ちます。これが一番確実です。
- 道具で調べる。 不可視文字を取り除く に貼ると、ゼロ幅スペース・BOM・NBSP などの位置を札で示してくれます。貼ったデータは端末の外へ送られません。
全角が混ざっただけなら、半角全角を整える で英数字と記号を半角にそろえられます。全角の@や.も、まとめて半角になります。ただし、日本語の名前や住所まで半角にしてしまわないよう、対象を英数字と記号に絞って変換してください。
書類やフォームでの書き方
アドレスを書類に書き写すときは、次の点に気をつけます。
- 半角で書く。 手書きの場合も、「@」と「.」がはっきり読める字で書きます
- 紛らわしい字は読み合わせる。 数字の「1」と英字の小文字「l」(エル)、大文字の「I」(アイ)、数字の「0」と英字の「O」は、手書きでも活字でも見分けにくい組み合わせです
- 長音「ー」とハイフン「-」を混ぜない。 見た目は似ていますが、別の文字です。アドレスに使えるのはハイフンのほうです
- 名刺や署名は、文字として貼る。 画像の署名を目で見て打ち直すと、打ち間違いが増えます
Webフォームの側でできることもあります。入力された値の前後の空白を、全角スペースまで含めて取り除く。全角の英数字を半角に直してから検査する。こうした処理を入れておくと、利用者が「正しく入れたのに弾かれる」状況をかなり減らせます。
なお、日本語のメールアドレス(漢字やひらがなを含むもの)を扱うための規格として、RFC 6531(2012年2月)が定められています。ただし、これは受け取る側のサーバーが対応して初めて使えるもので、通常のメールアドレスの感覚では、半角の英数字と記号だけで書くのが基本です。
見えない原因は、見える道具に置き換えれば片付きます。画面で正しく見えているのに届かないとき、疑うのは自分の目ではなく、文字のほうです。