メール検証
このリファレンス記事では、メールアドレスのローカルおよびホスト部分の検証ルールについて説明します。検証は、ダッシュボードのメールアドレス、エンドユーザーのメールアドレス(お客様の顧客)、およびメールメッセージの送信元および返信先アドレスに対して行われます。
仕組み
Braze は、メールアドレスが更新された時、API や CSV アップロード、SDK によってインポートされた時、またはダッシュボードで変更された時に、そのメールアドレスを検証します。メールアドレスには空白を含めることはできません。API を使用する場合、空白があると 400 エラーが返されます。
Braze は特定の文字を拒否し、そのアドレスを無効としてマークします。メールがバウンスした場合、Braze はそのアドレスを無効としてマークしますが、サブスクリプションのステータスは変更しません。メール本文に非標準の ASCII 文字が含まれている場合、Braze はそのメールを送信しません。
使用可能な文字
- 文字 (A~Z)
- 数字 (0~9)
- 記号
- -
- ^
- +
- $
- ’
- &
- #
- /
- %
- *
- =
- `
-
- ~
- !
- ?
- . (文字または他の文字の間のみ)
使用できない文字
- 空白文字(ASCII および Unicode)
この検証は構文チェックであり、検証サービスではありません。このプロセスの目的の1つは、メールアドレスのローカル部分において国際文字(UTF-8 など)をサポートすることです。
Braze はメールアドレスのローカル部分とホスト部分の両方の構文を検証します。ローカル部分はアットマーク(@)より前の部分です。ホスト部分はアットマークより後の部分です。ローカル部分は、ピリオド(.)以外の任意の使用可能な文字で開始および終了できます。このプロセスでは、ドメインに有効な MX サーバーがあるかどうか、またはそのドメインにユーザーが存在するかどうかは考慮されません。
ドメイン部分に非標準の ASCII 文字が含まれている場合、Braze に提供する前に Punycode エンコードする必要があります。
Braze が無効なメールアドレスを持つユーザーの追加リクエストを受信した場合、API はエラーを返します。CSV アップロードの場合、Braze はユーザーを作成しますが、無効なメールアドレスは省略します。
ローカル部分の検証ルール
一般的なメール検証
ほとんどのドメインでは、ローカル部分は以下のパラメーターに従う必要があります:
- 文字、数字(Unicode の文字や数字を含む)、および次の文字を含めることができます:(+) (&) (#) (_) (-) (^) または (/)
- 次の文字を含めることができますが、先頭または末尾に使用することはできません:(.)
- 二重引用符(”)を含めることはできません
- 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 エンコードすることは可能です。