Validação de e-mail
Este artigo de referência aborda as regras de validação da parte local e do host para endereços de e-mail. A validação é usada para endereços de e-mail do dashboard, endereços de e-mail do usuário final (seus clientes) e endereços de origem e de resposta de uma mensagem de e-mail.
Como funciona
A Braze valida um endereço de e-mail quando ele é atualizado, importado por API, upload de CSV ou SDK, ou modificado no dashboard. Os endereços de e-mail não podem conter espaços em branco. Se você usar a API, espaços em branco retornam um erro 400.
A Braze rejeita determinados caracteres e marca o endereço como inválido. Se um e-mail sofrer bounce, a Braze marca o endereço como inválido e não altera o status de inscrição. Se o corpo do e-mail contiver caracteres ASCII não padrão, a Braze não envia o e-mail.
Caracteres aceitos
- Letras (A-Z)
- Números (0-9)
- Símbolos
- -
- ^
- +
- $
- ’
- &
- #
- /
- %
- *
- =
- `
-
- ~
- !
- ?
- . (somente entre letras ou outros caracteres)
Caracteres não aceitos
- Espaços em branco (ASCII e Unicode)
Essa validação é uma verificação de sintaxe, não um serviço de validação. Um dos objetivos desse processo é oferecer suporte a caracteres internacionais (como UTF-8) na parte local do endereço de e-mail.
A Braze valida a sintaxe tanto da parte local quanto da parte do host de um endereço de e-mail. A parte local é tudo o que vem antes do arroba (@); a parte do host é tudo o que vem depois. A parte local pode começar e terminar com qualquer caractere permitido, exceto o ponto (.). Esse processo não verifica se o domínio tem um servidor MX válido nem se um usuário existe nesse domínio.

Se a parte do domínio contiver caracteres ASCII não padrão, ela precisará ser codificada em Punycode antes de ser enviada à Braze.
Se a Braze receber uma solicitação para adicionar um usuário com um endereço de e-mail inválido, a API retorna um erro. No caso de um upload de CSV, a Braze cria o usuário, mas omite o endereço de e-mail inválido.
Regras de validação da parte local
Validação geral de e-mail
Para a maioria dos domínios, a parte local deve seguir estes parâmetros:
- Pode conter qualquer letra ou número, incluindo letras e números Unicode, além dos seguintes caracteres: (+) (&) (#) (_) (-) (^) ou (/)
- Pode conter, mas não pode começar nem terminar com, o seguinte caractere: (.)
- Não pode conter aspas duplas (“)
- Deve ter entre 1 e 64 caracteres

A Braze normaliza endereços de e-mail convertendo letras maiúsculas em minúsculas e removendo espaços em branco no início e no fim. Essa normalização é aplicada quando os endereços de e-mail são criados ou atualizados pela API, por upload de CSV, pelo SDK ou pelo dashboard.
A seguinte expressão regular pode ser usada para verificar se um endereço de e-mail será considerado válido:
/\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/
Endereços do Gmail
Se a parte do domínio for Gmail, a parte local deve ter pelo menos dois caracteres e seguir a validação por expressão regular descrita anteriormente nesta seção.
Domínios da Microsoft
Se o domínio do host incluir “msn”, “hotmail”, “outlook” ou “live”, a Braze usa a seguinte expressão regular para validar a parte local: /\A\w[\-\w]*(?:\.[\-\w]+)*\z/i
A parte local de um endereço da Microsoft deve seguir estes parâmetros:
- Pode começar com uma letra (a-z), um sublinhado (_) ou um número (0-9).
- Pode conter qualquer caractere alfanumérico (a-z ou 0-9) ou um sublinhado (_)
- Pode conter os seguintes caracteres: (.) ou (-)
- Não pode começar com um ponto (.)
- Não pode conter dois ou mais pontos consecutivos (.)
- Não pode terminar com um ponto (.)
O teste de validação verifica se a parte local antes do “+” corresponde à expressão regular.
Regras de validação da parte do host
A parte do host não pode ser um endereço IPv4 ou IPv6. O domínio de nível superior (como .com, .org, .net) não pode ser totalmente numérico.
A seguinte expressão regular é usada para validar o domínio:
/^[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)+$/i
O nome de domínio deve atender a estes parâmetros:
- Ser composto por dois ou mais rótulos separados por pontos
- Cada parte de um nome de domínio é chamada de “rótulo”. Por exemplo, o nome de domínio “example.com” é composto pelo rótulo “example” e pelo rótulo “com”.
- Conter pelo menos um ponto (.)
- Não conter dois ou mais pontos consecutivos
- Cada rótulo separado por ponto deve:
- Conter apenas caracteres alfanuméricos (a-z ou 0-9) e o hífen (-)
- Começar com um caractere alfanumérico (a-z ou 0-9)
- Terminar com um caractere alfanumérico (a-z ou 0-9)
- Ter de 1 a 63 caracteres
Validação adicional necessária
O último rótulo do domínio deve ser um domínio de nível superior (TLD) válido, determinado por tudo o que vem depois do último ponto (.). Esse TLD deve constar na lista de TLDs da ICANN. O validador da Braze verifica apenas a sintaxe. Ele não detecta erros de digitação nem endereços inexistentes.

O Unicode é aceito apenas na parte local do endereço de e-mail. O Unicode não é aceito na parte do domínio, mas ela pode ser codificada em Punycode.