メール検証
このリファレンス記事では、メールアドレスのローカルおよびホスト部分の検証ルールについて説明します。検証は、ダッシュボードのメールアドレス、エンドユーザーのメールアドレス (お客様の顧客)、およびメールメッセージの送信元および返信先アドレスに対して行われます。
仕組み
メールの検証は、ユーザーのメールアドレスが更新されたとき、またはAPI、CSVアップロード、またはSDKを介してBrazeにインポートされているとき、またはダッシュボードで変更されたときに実行されます。メールアドレスには空白を含めることはできません。API を使用している場合、空白は 400
エラーを引き起こします。
Brazeは特定の文字を受け付けず、それらを無効として認識します。メールがバウンスされた場合、Braze はメールを無効としてマークし、購読ステータスは変更されません。
使用できる文字
- 文字 (A ~ Z)
- 数字 (0 ~ 9)
- 記号
- -
- +
- $
- ’’
- &
- #
- /
- %
- *
- =
- `
- |
- ~
- !
- ?
- . (文字または他の文字の間のみ)
使用できない文字
- 空白文字(ASCIIおよびUnicode)
この検証は、Briteverifyのような検証サービスと混同しないでください。これは、メールアドレスの構文が正しいことを確認するためのチェックです。この検証プロセスを使用する主な理由の1つは、メールアドレスのローカル部分で国際文字(UTF-8など)をサポートすることです。
メールの構文検証は、メールアドレスのローカル部分とホスト部分の両方を確認します。ローカル部分はアスペランド (@) の前のすべての部分、ホスト部分はアスペランドの後のすべての部分です。例えば、メールアドレスのこのローカル部分は、ピリオド (.) を除く任意の許可された文字で始まり、終わることができます。このプロセスはメールアドレスの構文のみを検証しており、ドメインに有効なMXサーバーがあるかどうか、またはリストされたドメインにユーザーが存在するかどうかは考慮していないことに注意してください。
ドメイン部分に非ASCII文字が含まれている場合、Brazeに提供される前にPunycode-encodedする必要があります。
Brazeがユーザーを追加するリクエストを受け取り、メールアドレスが無効と見なされた場合、APIでエラー応答が表示されます。CSV経由でアップロードする場合、ユーザーが作成されますが、メールアドレスは追加されません。
ローカル部分の検証ルール
一般的なメールの検証
ほとんどのドメインでは、ローカル部分は次のパラメーターに従う必要があります:
- 任意の文字、数字、ユニコード文字および数字、ならびに次の文字を含むことができます: (+) (&) (#) (_) (-) (^) または (/)
- 次の文字を含むことができますが、次の文字で始まったり終わったりすることはありません: (.)
- 二重引用符(”)を含めることはできません
- 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」が含まれている場合、ローカル部分を検証するために次の正規表現が使用されます: /\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でエンコードされている場合があります。