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

Para melhorar a segurança do email e garantir uma entrega de emails fiável e de grande volume, migre da API Mail antiga para um serviço de fornecedor de email de terceiros padrão que use o protocolo SMTP (Simple Mail Transfer Protocol), como o SendGrid, o Mailgun ou o Mailjet.

Este guia descreve o processo de migração de serviços de email enviados da API Mail para um serviço de email baseado em SMTP. Pode aplicar estas instruções para migrar para qualquer fornecedor de email de terceiros baseado em SMTP ou usar outro tempo de execução suportado. Este guia não fornece passos para migrar mensagens recebidas que usam uma alternativa de terceiros.

A norma SMTP oferece as seguintes vantagens em relação à API Mail do App Engine antigo:

  • Os serviços baseados em SMTP oferecem uma entrega de emails melhorada, reduzindo a probabilidade de os emails serem marcados como spam.

  • Com os serviços baseados em SMTP, pode aceder a relatórios de estatísticas detalhados sobre aberturas, cliques e rejeições de emails. Estes relatórios fornecem informações úteis sobre a forma como os utilizadores interagem com os seus emails.

  • Tem controlo total sobre a sua reputação do remetente e autenticação de email.

  • Limites de envio diários aumentados em comparação com a API Mail antiga, com acesso a funcionalidades avançadas, como testes A/B, segmentação e modelos.

Vista geral do processo de migração

O processo de migração inclui os seguintes passos:

  1. Configure o serviço de email baseado em SMTP para obter as suas credenciais SMTP.
  2. Valide a identidade do remetente para fazer a autenticação com o seu domínio ou endereço de email.
  3. Configure os ficheiros de origem com as suas credenciais SMTP e o método de envio e, em seguida, implemente a sua aplicação.
  4. Teste a sua aplicação para verificar a funcionalidade de email.

Configure o serviço de email baseado em SMTP

Configure uma conta com um fornecedor de email de terceiros padrão que use SMTP, como o SendGrid, o Mailgun ou o Mailjet, e obtenha as seguintes informações do fornecedor escolhido:

  • Anfitrião SMTP: o endereço do servidor SMTP usado para enviar correio. Por exemplo, smtp.sendgrid.net ou example.mailjet.com.

  • Porta: o número da porta para a ligação. Por exemplo, 587 para encriptação TLS.

  • Nome de utilizador: o nome de utilizador de início de sessão SMTP da sua conta.

  • Palavra-passe ou chave da API: a palavra-passe da sua conta ou uma chave da API, que funciona como a palavra-passe para a ligação SMTP. Para alguns fornecedores, como o SendGrid, o nome de utilizador é um valor fixo, como apikey, e a chave da API é usada como palavra-passe.

Valide a sua identidade de remetente

Para evitar spam, todos os serviços de email exigem que valide que é o proprietário do endereço de email ou do domínio a partir do qual está a enviar emails. Este passo envolve frequentemente adicionar detalhes de DNS específicos, como registos CNAME, à página de gestão de DNS do seu anfitrião de domínio.

Siga as instruções do seu fornecedor para validar a identidade do remetente antes de continuar com a configuração da aplicação.

Para adicionar registos de DNS ao seu anfitrião de domínio, siga estes passos:

  1. Inicie sessão no serviço do seu fornecedor DNS.
  2. Navegue para a página de gestão de DNS do seu domínio.
  3. Adicione os registos CNAME exatamente como fornecidos pelo seu fornecedor de serviços de email. Para cada registo, faça o seguinte:

    • No campo Nome ou Anfitrião, introduza os detalhes do anfitrião.
    • No campo Pontos ou Valor, introduza o valor.

As alterações de DNS podem demorar algumas horas a ficarem ativas. Se a validação falhar, aguarde algum tempo e tente novamente.

Configure os ficheiros de origem

Para incluir a funcionalidade SMTP, siga estes passos:

  1. Execute o seguinte comando para instalar o Maven:

    sudo apt install maven
    
  2. Adicione o seguinte código ao ficheiro 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 seu Google Cloud projeto.

  3. Adicione as seguintes variáveis de ambiente no ficheiro 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 o seguinte:

    • RUNTIME: uma versão de tempo de execução Java suportada.
    • SMTP_HOST: o endereço do anfitrião SMTP. Por exemplo, smtp.sendgrid.net ou example.mailjet.com.
    • SMTP_USER: o nome de utilizador de início de sessão SMTP da sua conta. Por exemplo, apiKey.
    • SMTP_PASSWORD: a palavra-passe ou a chave da API que obteve do seu fornecedor de email de terceiros. Para melhorar a segurança, recomendamos que use o Secret Manager para armazenar a chave da API em vez de a colocar no ficheiro appengine-web.xml.
  4. Execute o seguinte comando para implementar a sua aplicação:

    mvn package appengine:deploy
    

Teste a sua aplicação

A migração é bem-sucedida se conseguir implementar a sua app sem erros. Para verificar se o seu serviço de correio está a funcionar, siga estes passos:

  1. Acione a parte da sua aplicação que envia um email.
  2. Verifique o Explorador de registos para se certificar de que não existem erros relacionados com as chamadas API ou a tentativa de ligação SMTP.
  3. Inicie sessão na conta do seu fornecedor de email de terceiros (por exemplo, Mailgun, Mailjet, SendGrid) e verifique o respetivo feed de atividade, registos ou painel de controlo de entrega. O seu email de teste deve aparecer no feed com um estado de entrega marcado como Processed, Delivered ou semelhante.

O que se segue?