メール検証
このリファレンス記事では、メールアドレスのローカルおよびホスト部分の検証ルールについて説明します。検証は、ダッシュボードのメールアドレス、エンドユーザーのメールアドレス (お客様の顧客)、およびメールメッセージの送信元および返信先アドレスに対して行われます。
仕組み
Brazeは、メールアドレスの更新、API、CSVアップロード、SDKによるインポート、ダッシュボードでの変更時に、メールアドレスのバリデーションを行う。メールアドレスに空白を含めることはできない。APIを使用する場合、空白は400 エラーを返す。
Brazeは特定の文字を拒否し、アドレスを無効とする。メールがバウンスした場合、Brazeはそのアドレスを無効とし、サブスクリプションのステータスは変更しない。メール本文に非標準のASCII文字が含まれている場合、Brazeはメールを送信しない。
Accepted characters
- 文字 (A ~ Z)
- 数字 (0 ~ 9)
- 記号
- -
- +
- $
- ’
- &
- #
- /
- %
- *
- =
- `
- |
- ~
- !
- ?
- . (文字または他の文字の間のみ)
Unaccepted characters
- 空白文字(ASCIIおよびUnicode)
この検証は構文チェックであり、検証サービスではない。このプロセスの目的のひとつは、メールアドレスのローカル部分で国際文字(UTF-8など)をサポートすることである。
Brazeは、メールアドレスのローカル部分とホスト部分の両方の構文を検証する。ローカル部分はアスペランド(@)の前、ホスト部分はアスペランドの後である。ローカ ル部分は、ピリオド(.)以外の文字で始まり、ピリオド(.)で終わることができる。この処理では、ドメインに有効なMXサーバーがあるかどうかや、そのドメインにユーザーが存在するかどうかは考慮されない。
ドメイン部分に非標準のASCII文字が含まれている場合は、PunycodeエンコードしてからBrazeに供給する必要がある。
Brazeが無効なメールアドレスを持つユーザーを追加するリクエストを受信した場合、APIはエラーを返す。CSVアップロードの場合、Brazeはユーザーを作成するが、無効なメールは省略する。
ローカル部分の検証ルール
一般的なメールの検証
ほとんどのドメインでは、ローカル部分は次のパラメーターに従う必要があります:
- 任意の文字、数字(ユニコード文字と数字を含む)、および以下の文字を含むことができる: (+)(&) (#)(_) (-) (^) または (/)
- 次の文字を含むことができますが、次の文字で始まったり終わったりすることはありません: (.)
- 二重引用符(”)を含めることはできません
- 1文字以上64文字以内である必要があります
次の正規表現を使用して、メールアドレスが有効と見なされるかどうかを検証できます:
1
/\A([a-zA-Z0-9_\-\^+$'\&#\/!%\*=\?`\|~]|[[^\p{ASCII}\p{Space}]&&\p{Alnum}\p{Punct}\p{S}])(([a-zA-Z0-9_\-\^+$'\&#\/!%\*=\?`\|~\.]|[[^\p{ASCII}\p{Space}]&&\p{Alnum}\p{Punct}\p{S}])*([a-zA-Z0-9_\-\^+$'\&#\/!%\*=\?`\|~]|[[^\p{ASCII}\p{Space}]&&\p{Alnum}\p{Punct}\p{S}]))?\z/
Gmail のアドレス
ドメイン部分がGmailの場合、ローカライゼーション部分は少なくとも2文字以上で、上記の正規表現の検証に従う必要がある。
Microsoft のドメイン
ホストドメインに “msn”、”hotmail”、”outlook”、または “live “が含まれる場合、Brazeは以下の正規表現を使用してローカル部分を検証する: /\A\w[\-\w]*(?:\.[\-\w]+)*\z/i
Microsoft アドレスのローカル部分は次のパラメーターに従う必要があります:
- 文字(a-z)、アンダースコア((_), )、数字(0-9)で始めることができる。
- 英数字(a-zまたは0-9)またはアンダースコアを含む。 (_)
- 以下の文字を含むことができる: (.) または (-)
- ピリオド(.)で始めることはできません
- 2つ以上の連続するピリオド(.)を含めることはできません
- ピリオド (.) で終わることはできません
バリデーション・テストは、”+”の前のローカライゼーション部分が正規表現にマッチするかどうかをチェックする。
ホスト部分の検証ルール
ホスト部分はIPv4またはIPv6アドレスではありえない。トップレベルドメイン(.com、.org、.netなど)は完全に数字にすることはできない。
次の正規表現はドメインを検証するために使用されます:
/^[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)+$/i
ドメイン名はこれらのパラメータを満たしていなければならない:
- ピリオドで区切られた 2 つ以上のラベルで構成されます。
- ドメイン名の各部分は「ラベル」と呼ばれます。例えば、ドメイン名「example.com」は「example」ラベルと「com」ラベルで構成されています。
- 少なくとも1つのピリオド(.)を含める必要があります。
- 2つ以上の連続するピリオドを含むことはできません
- ピリオド区切りの各ラベルは次の条件を満たしている必要があります:
- 英数字(a-zまたは0-9)とハイフン(-)のみを含む。
- 英数字(a-zまたは0-9)で始めます
- 英数字(a-zまたは0-9)で終了
- 1 ~ 63 文字を含む
追加の検証が必要です
ドメインの最終ラベルは、有効なトップレベルドメイン(TLD)でなければならない。このTLDはICANNのTLDリストに掲載されるべきである。Brazeバリデーターは構文のみをチェックする。タイプミスや存在しない住所をキャッチすることはできない。
Unicodeはメールアドレスのローカル部分にのみ使用できます。ドメイン部分にはUnicodeは使用できませんが、Punycodeでエンコードされている場合があります。
GitHub でこのページを編集