Migrar da API App Engine Mail para um serviço baseado em SMTP

Para melhorar a segurança do e-mail e garantir a entrega confiável de e-mails em grande volume, migre da API Mail legada para um serviço padrão de provedor de e-mail terceirizado que usa o protocolo de transferência simples de e-mail (SMTP), como SendGrid, Mailgun ou Mailjet.

Este guia descreve o processo de migração de serviços de e-mail de saída da API Mail para um serviço de e-mail baseado em SMTP. Você pode aplicar essas instruções para migrar para qualquer provedor de e-mail terceirizado baseado em SMTP ou usar outro tempo de execução compatível. Este guia não fornece etapas para migrar mensagens recebidas que usam uma alternativa de terceiros.

O padrão SMTP oferece os seguintes benefícios em relação à API Mail legada do App Engine:

  • Os serviços baseados em SMTP melhoram a entrega de e-mails ao reduzir a probabilidade de serem marcados como spam.

  • Com os serviços baseados em SMTP, você pode acessar relatórios de análise detalhados sobre aberturas, cliques e devoluções de e-mails. Esses relatórios fornecem informações úteis sobre como os usuários interagem com seus e-mails.

  • Você tem controle total sobre sua reputação de remetente e autenticação de e-mail.

  • Aumento dos limites de envio diários em comparação com a API Mail legada, com acesso a recursos avançados, como testes A/B, segmentação e modelos.

Visão geral do processo de migração

O processo de migração inclui as seguintes etapas:

  1. Configure o serviço de e-mail baseado em SMTP para receber suas credenciais SMTP.
  2. Confirme sua identidade de remetente para fazer a autenticação com seu domínio ou endereço de e-mail.
  3. Configure os arquivos de origem com suas credenciais SMTP e o método de envio e implante o aplicativo.
  4. Teste o aplicativo para verificar a funcionalidade de e-mail.

Configurar o serviço de e-mail baseado em SMTP

Configure uma conta com um provedor de e-mail terceirizado padrão que use SMTP, como SendGrid, Mailgun ou Mailjet, e recupere as seguintes informações do provedor escolhido:

  • Host SMTP: o endereço do servidor SMTP usado para enviar e-mails. Por exemplo, smtp.sendgrid.net ou example.mailjet.com.

  • Porta: o número da porta da conexão. Por exemplo, 587 para criptografia TLS.

  • Nome de usuário: o nome de usuário de login SMTP da sua conta.

  • Senha ou chave de API: a senha da sua conta ou uma chave de API, que funciona como a senha da conexão SMTP. Para alguns provedores, como o SendGrid, o nome de usuário é um valor fixo, como apikey, e a chave da API é usada como senha.

Verificar sua identidade de remetente

Para evitar spam, todos os serviços de e-mail exigem que você confirme que é o proprietário do endereço de e-mail ou do domínio de onde está enviando mensagens. Essa etapa geralmente envolve adicionar detalhes específicos de DNS, como registros CNAME, à página de gerenciamento de DNS do host de domínio.

Siga as instruções do seu provedor para verificar a identidade do remetente antes de continuar com a configuração do aplicativo.

Para adicionar registros DNS ao seu host de domínio, siga estas etapas:

  1. Faça login no serviço do seu provedor de DNS.
  2. Acesse a página de gerenciamento de DNS do seu domínio.
  3. Adicione os registros CNAME exatamente como fornecidos pelo provedor de serviços de e-mail. Para cada registro, faça o seguinte:

    • No campo Nome ou Host, insira os detalhes do host.
    • No campo Pontos ou Valor, insira o valor.

As mudanças de DNS podem levar algumas horas para serem ativadas. Se a verificação falhar, aguarde um pouco e tente de novo.

Configurar os arquivos de origem

Para incluir a funcionalidade SMTP, siga estas etapas:

  1. Execute o seguinte comando para instalar o Maven:

    sudo apt install maven
    
  2. Adicione o seguinte código ao arquivo pom.xml para mudar para o serviço SMTP:

    1. Adicione a versão da dependência appengine-api-1.0-sdk:

       <dependency>
         <groupId>com.google.appengine</groupId>
         <artifactId>appengine-api-1.0-sdk</artifactId>
         <version>2.0.38</version>
       </dependency>
      
    2. Atualize o ID do projeto:

        <configuration>
          <deploy.projectId>PROJECT-ID</deploy.projectId>
          <deploy.version>1</deploy.version>
        </configuration>
      

      Substitua PROJECT-ID pelo ID do projeto Google Cloud .

  3. Adicione as seguintes variáveis de ambiente ao arquivo appengine-web.xml para incluir as configurações do remetente SMTP:

    ...
    <runtime>RUNTIME</runtime>
    <service>default</service>
    <threadsafe>true</threadsafe>
    <app-engine-apis>true</app-engine-apis>
    <env-variables>
    <!-- This is the master switch to enable the SMTP service.-->
    <env-var name="APPENGINE_USE_SMTP_MAIL_SERVICE" value="true" />
    <!-- SMTP Server Configuration -->
    <!-- The server address from your mail provider.-->
    <env-var name="APPENGINE_SMTP_HOST" value="SMTP_HOST" />
    <!-- The recommended port for TLS connections. -->
    <env-var name="APPENGINE_SMTP_PORT" value="587" />
    <!-- The username for your SMTP login. -->
    <env-var name="APPENGINE_SMTP_USER" value="SMTP_USER" />
    <!-- The API key or password -->
    <env-var name="APPENGINE_SMTP_PASSWORD" value="SMTP_PASSWORD" />
    <!--  Use TLS for a secure connection. -->
    <env-var name="APPENGINE_SMTP_USE_TLS" value="true" />
    </env-variables>
    ...
    </appengine-web-app>
    

    Substitua:

    • RUNTIME: uma versão do ambiente de execução do Java compatível.
    • SMTP_HOST: o endereço do host SMTP. Por exemplo, smtp.sendgrid.net ou example.mailjet.com.
    • SMTP_USER: o nome de usuário de login SMTP da sua conta. Por exemplo, apiKey.
    • SMTP_PASSWORD: a senha ou a chave de API que você recebeu do seu provedor de e-mail terceirizado. Para aumentar a segurança, recomendamos usar o Secret Manager para armazenar a chave de API em vez de colocá-la no arquivo appengine-web.xml.
  4. Execute o comando abaixo para implantar seu aplicativo:

    mvn package appengine:deploy
    

Teste o aplicativo

A migração será bem-sucedida se você conseguir implantar o app sem erros. Para verificar se o serviço de e-mail está funcionando, siga estas etapas:

  1. Acione a parte do aplicativo que envia um e-mail.
  2. Verifique o Explorador de registros para garantir que não haja erros relacionados às chamadas de API ou à tentativa de conexão SMTP.
  3. Faça login na conta do seu provedor de e-mail terceirizado (por exemplo, Mailgun, Mailjet, SendGrid) e verifique o feed de atividades, os registros ou o painel de entrega. O e-mail de teste vai aparecer no feed com um status de entrega marcado como Processed, Delivered ou semelhante.

A seguir