メール検証
このリファレンス記事では、メールアドレスのローカルおよびホスト部分の検証ルールについて説明します。検証は、ダッシュボードのメールアドレス、エンドユーザーのメールアドレス(顧客)、およびメールメッセージの差出人および返信先アドレスに対して行われます。
仕組み
Braze では、メールアドレスが更新されたとき、API、CSV アップロード、SDK でインポートされたとき、またはダッシュボードで変更されたときに、そのメールアドレスを検証します。メールアドレスに空白を含めることはできません。API を使用している場合、空白が含まれていると 400 エラーが返されます。
Braze は特定の文字を拒否し、そのアドレスを無効としてマークします。メールがバウンスした場合、Braze はそのアドレスを無効としてマークしますが、購読ステータスは変更しません。メール本文に非標準の ASCII 文字が含まれている場合、Braze はそのメールを送信しません。
使用できる文字
- 英字 (A-Z)
- 数字 (0-9)
- 記号
- -
- ^
- +
- $
- ’
- &
- #
- /
- %
- *
- =
- `
-
- ~
- !
- ?
- . (英字またはその他の文字の間でのみ使用可能)
使用できない文字
- 空白 (ASCII および Unicode)
この検証は構文チェックであり、検証サービスではありません。このプロセスの目的の 1 つは、メールアドレスのローカル部分で国際文字 (UTF-8 など) をサポートすることです。
Braze は、メールアドレスのローカル部分とホスト部分の両方の構文を検証します。ローカル部分はアットマーク (@) より前の部分、ホスト部分はそれより後の部分です。ローカル部分は、ピリオド (.) を除く使用可能な任意の文字で開始および終了できます。このプロセスでは、ドメインに有効な MX サーバーがあるかどうか、またはそのドメインにユーザーが存在するかどうかは考慮されません。

無効なメールアドレスを持つユーザーを追加するリクエストを Braze が受け取った場合、API はエラーを返します。CSV アップロードの場合、Braze はユーザーを作成しますが、無効なメールアドレスは除外されます。
ローカル部分の検証ルール
一般的なメール検証
ほとんどのドメインでは、ローカル部分は次のパラメーターに従う必要があります。
- 任意の文字と数字 (Unicode の文字と数字を含む) と、次の文字を含めることができます: (+) (&) (#) (_) (-) (^) または (/)
- 次の文字を含めることはできますが、先頭または末尾に使用することはできません: (.)
- 二重引用符 (“) を含めることはできません
- 長さは 1 ~ 64 文字である必要があります

Braze は、大文字を小文字に変換し、先頭と末尾の空白を削除することで、メールアドレスを正規化します。この正規化は、API、CSV アップロード、SDK、またはダッシュボードを通じてメールアドレスが作成または更新されるときに適用されます。
次の正規表現を使用して、メールアドレスが有効とみなされるかどうかを検証できます。
/\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 は最後のピリオド (.) 以降の部分で判断されます。この TLD は ICANN の TLD リストに記載されている必要があります。Braze のバリデーターは構文のみをチェックします。入力ミスや存在しないアドレスは検出されません。

Unicode は、メールアドレスのローカル部分でのみ使用できます。ドメイン部分では Unicode を使用できませんが、Punycode でエンコードすることは可能です。