PHP | Bibliotecas de desenvolvedores | Email Verification API | WhoisXML API

Biblioteca de cliente Email Verification em linguagem PHP Biblioteca de cliente Email Verification em linguagem PHP

Como verificar um endereço de e-mail em PHP

Neste artigo, vou orientá-lo sobre a melhor maneira possível de verificar endereços de e-mail e melhorar o procedimento de registro de usuários em seu site PHP.

A verificação de e-mail é extremamente importante. Garantir que os usuários que se inscrevem no seu site tenham um endereço de e-mail válido é essencial por vários motivos:

  • Você pode detectar erros de digitação quando os usuários estiverem digitando seus endereços de e-mail e solicitar que eles os corrijam antes de permitir o registro.
  • Ele permite que você mantenha contato com seus usuários: você pode enviar e-mails quando o cartão de crédito deles expirar, quando enviar recibos, quando houver novos recursos disponíveis, etc.
  • Ele garante que seus usuários possam redefinir a senha com segurança caso a esqueçam: sem um endereço de e-mail não há como validar a identidade de alguém além da verificação manual e humana.
  • Ele impede que os usuários se inscrevam no seu site com endereços de e-mail descartáveis, como os do Mailinator. Os usuários que se inscrevem nesses serviços geralmente estão tentando evitar o fornecimento do e-mail real por um motivo específico: talvez eles queiram abusar de seus recursos freemium, etc. Ao garantir que você permita apenas usuários com dados pessoais ou comerciais reais para se registrarem, você reduz o risco de abuso do seu site.

No entanto, o ponto em que a verificação de e-mail se torna complexa é decidir como verificar os endereços de e-mail para o SEU site. Cada site tem requisitos diferentes e, dependendo do que seu site faz, você pode querer verificar o endereço de e-mail de um usuário de apenas uma ou duas maneiras específicas.

Para ajudar a resolver esse problema, lançamos recentemente o verificador de e-mail (email-verifier) biblioteca Packagist.

Essa biblioteca PHP permite que você verifique facilmente os endereços de e-mail de várias maneiras diferentes e fornece uma verificação flexível (como você verá daqui a pouco).

Então, sem mais delongas, vamos dar uma olhada em como ele funciona!

Criar uma Conta de Email Verification

A primeira coisa que você precisa fazer para verificar endereços de e-mail usando a biblioteca de verificação de e-mail é criar uma conta gratuita para o serviço da Email Verification API aqui: https://emailverification.whoisxmlapi.com/signup

Depois de criar sua conta gratuita, você poderá usar o serviço de API para verificar 1.000 endereços de e-mail gratuitamente. Se quiser fazer mais, você sempre poderá pagar um valor muito baixo.

Instalar o pacote

Agora que sua conta está configurada, a próxima coisa que você precisa fazer é instalar o pacote PHP. Na linha de comando execute o seguinte comando:

            
$ composer require whois-api/email-verifier
            
            

Isso fará o download e instalará a versão mais recente do pacote email-verifier do Packagist.

Verificar um endereço de e-mail

Agora que você tem uma conta e o pacote instalados, vamos dar uma olhada em alguns códigos que você pode executar para verificar um endereço de e-mail imediatamente.

Aqui está um pequeno script, verify.phpque verificará um endereço de e-mail usando todos os métodos de verificação possíveis:

            
<?php

require_once  __DIR__ . '/vendor/autoload.php';
use WhoisApi\EmailVerifier\Builders\ClientBuilder;
$builder = new ClientBuilder();
$client = $builder->build('Your API key');
try {
    /* Without refreshing */
    echo print_r($client->get('support@whoisxmlapi.com', ['_hardRefresh']), true);
    echo PHP_EOL;
} catch (\Throwable $exception) {
    echo "Error: {$exception->getCode()} {$exception->getMessage()}" . PHP_EOL;
}
            
            

Como você pode ver, há apenas três etapas para usar a biblioteca:

  • Importe o arquivo de carregamento automático do compositor e um construtor de clientes da biblioteca.
  • Criar um ApiClient fornecendo a ele a chave de API que você criou quando se inscreveu para o serviço de API.
  • Executar o OBTER passando o endereço de e-mail que você deseja verificar e uma matriz com a opção que deve ser desativada. Todas as opções disponíveis são ativadas por padrão. Esta é a lista de opções disponíveis: validateDNS, validateSMTP, checkCatchAll, checkFree, checkDisposable, _hardRefresh. A descrição dessas opções pode ser encontrada em nosso documentation page.

Os dados impressos no exemplo terão a seguinte aparência:

            
WhoisApi\EmailVerifier\Models\Response Object
(
    [emailAddress] => support@whoisxmlapi.com
    [formatCheck] => 1
    [smtpCheck] => 1
    [dnsCheck] => 1
    [freeCheck] =>
    [disposableCheck] =>
    [catchAllCheck] => 1
    [mxRecords] => Array
        (
            [0] => ALT1.ASPMX.L.GOOGLE.com
            [1] => ALT2.ASPMX.L.GOOGLE.com
            [2] => ASPMX.L.GOOGLE.com
            [3] => ASPMX2.GOOGLEMAIL.com
            [4] => ASPMX3.GOOGLEMAIL.com
        )
    [audit] =>
    [auditModel:protected] => WhoisApi\EmailVerifier\Models\Audit Object
        (
            [auditCreatedDate] => Carbon\Carbon Object
                (
                    [date] => 2018-09-21 15:52:51.000000
                    [timezone_type] => 3
                    [timezone] => UTC
                )
            [auditUpdatedDate] => Carbon\Carbon Object
                (
                    [date] => 2018-09-21 15:52:51.000000
                    [timezone_type] => 3
                    [timezone] => UTC
                )
        )
)            
            
            

disposableCheck and freeCheck têm um valor invisível false (é um tipo tipo booleano).

Cada valor de objeto retornado corresponde a um tipo diferente de verificação:

  • The catchAllCheck verifica se esse endereço de e-mail é ou não um endereço "catch-all". Isso se refere a um tipo especial de endereço que pode receber e-mails de qualquer número de outros endereços. Isso é comum em empresas em que, se você enviar um e-mail para test@hi.com e outro para test2@hi.com, ambos os e-mails serão enviados para a mesma caixa de entrada.
  • The disposableCheck verifica se o endereço de e-mail é descartável ou não (criado por meio de um serviço como o Mailinator). Isso o ajuda a verificar se há abuso. Esse valor será false se o e-mail não for descartável, e true otherwise.
  • The dnsCheck verifica se o domínio no endereço de e-mail, por exemplo: gmail.com, é um domínio válido. Esse valor será OK se o domínio for bom.
  • The freeCheck verificará se o endereço de e-mail é de um provedor de e-mail gratuito, como o Gmail ou não. Esse valor será "false" se o endereço de e-mail não for gratuito e true otherwise.
  • The formatCheck A verificação permite que você saiba se há algum erro de sintaxe no endereço de e-mail. Essa é uma verificação básica realizada para detectar erros de digitação simples ou erros graves. Esse valor será false se não houver erros, e true otherwise.
    Nos bastidores, o serviço de API está lidando com todos esses tipos de verificações para você de várias maneiras interessantes. Falarei sobre isso em um artigo futuro.

Personalizando o Email Verification

Como mencionei anteriormente, o exemplo de código acima mostrou como validar um endereço de e-mail com todos os métodos possíveis de verificação, mas isso pode não ser sempre o que você deseja fazer.

A verificação de e-mail pode ser lenta. Cada tipo de verificação leva um pequeno período de tempo (frações de um segundo), mas quando todas as verificações são realizadas, esse tempo pode se acumular.

Se o seu site só precisa verificar um endereço de e-mail para garantir que ele possa receber e-mails, por exemplo, você pode definir o pacote email-verifier para executar somente essa verificação. A biblioteca do verificador de e-mail é incrivelmente flexível: você pode ativar ou desativar qualquer tipo de verificação que desejar.

Veja como funciona:

            
$client->get('support@whoisxmlapi.com', [ '_hardRefresh', 'validateSMTP', ... ] )
            
            

Ao executar o OBTER você pode passar uma matriz de opções desativadas (como mostrado acima) que afetam diretamente os tipos de verificações que são realizadas. Sinta-se à vontade para usá-las conforme necessário.

Melhorar o fluxo de registro do usuário

Agora que você viu como pode verificar endereços de e-mail usando a biblioteca de verificação de e-mail, é provável que queira modificar o processo de registro do seu site para fazer uso disso.

A melhor maneira de fazer isso é bastante simples. Quando um usuário preenche o formulário de registro e o envia, você deve:

  • Receber os dados do formulário em seu servidor da Web
  • Analisar os dados de registro do usuário, incluindo seu endereço de e-mail
  • Verifique imediatamente o endereço de e-mail do usuário usando a biblioteca de verificação de e-mail
  • Mostrar um erro ao usuário se o e-mail for inválido, solicitando que ele tente novamente
  • Se tudo estiver em ordem, crie a nova conta do usuário e faça o login

Ao seguir essas etapas, você melhorará muito o fluxo de registro do seu site ao detectar erros de digitação e erros do usuário no início do processo de registro, antes que seja tarde demais para corrigir.

Resumo

Portanto, para concluir: verificar os endereços de e-mail dos seus usuários pode ser uma maneira simples de melhorar a experiência do usuário em seu site.

Se você precisar verificar um endereço de e-mail, o novo email-verifier é a ferramenta perfeita, pois lida com muitos tipos diferentes de validação e é extremamente flexível.

Se tiver alguma dúvida, envie um e-mail para nós!