メール検証
このリファレンス記事では、メールアドレスのローカルおよびホスト部分の検証ルールについて説明します。
バリデーションは、ダッシュボードメールアドレス、エンドユーザーメールアドレス(お客様)、およびメールメッセージの送信元および返信先アドレスに使用されます。メールの検証は、ユーザーのメールアドレスが更新されたとき、または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アドレスの場合、ローカル部分は少なくとも2文字以上である必要があります。これは、このセクションに記載されている正規表現の検証に加えてです。
マイクロソフト ドメイン
ホストドメインに「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でエンコードされている場合があります。