メール検証
このリファレンス記事では、メールアドレスのローカルおよびホスト部分の検証ルールについて説明します。検証は、ダッシュボードのメールアドレス、エンドユーザーのメールアドレス (お客様の顧客)、およびメールメッセージの送信元および返信先アドレスに対して行われます。
仕組み
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文字が含まれている場合、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でエンコードされている場合があります。
GitHub でこのページを編集