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 de provedor de e-mail terceirizado padrão que usa o Simple Mail Transfer Protocol (SMTP), como SendGrid, Mailgun ou Mailjet.
Este guia descreve o processo de migração de serviços de e-mail enviados 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 ambiente 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, reduzindo a probabilidade de que as mensagens sejam marcadas 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 a reputação do remetente e a autenticação de e-mail.
Limites de envio diário aumentados 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:
- Configure o serviço de e-mail baseado em SMTP para receber suas credenciais de SMTP.
- Verifique a identidade do remetente para autenticar com seu domínio ou endereço de e-mail.
- Configure seus arquivos de origem com as credenciais de SMTP e o método de envio e implante o aplicativo.
- 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 usa 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.netouexample.mailjet.com.Porta: o número da porta da conexão. Por exemplo,
587para 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 atua 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 de API é usada como senha.
Verificar a identidade do remetente
Para evitar spam, todos os serviços de e-mail exigem que você verifique se é o proprietário do endereço de e-mail ou do domínio de que está enviando e-mails. Essa etapa geralmente envolve a adição de detalhes específicos de DNS, como registros CNAME, à página de gerenciamento de DNS do host de domínio.
Siga as instruções do provedor para verificar a identidade do remetente antes de continuar com a configuração do aplicativo.
Para adicionar registros DNS ao host de domínio, siga estas etapas:
- Faça login no serviço do provedor de DNS.
- Acesse a página de gerenciamento de DNS do seu domínio.
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 Aponta para 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:
Execute o comando abaixo para instalar o Maven:
sudo apt install mavenAdicione o código abaixo ao arquivo
pom.xmlpara mudar para o serviço SMTP: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>5.0.0</version> </dependency>Atualize o ID do projeto:
<configuration> <deploy.projectId>PROJECT-ID</deploy.projectId> <deploy.version>1</deploy.version> </configuration>Substitua PROJECT-ID pelo Google Cloud ID do projeto.
Adicione as seguintes variáveis de ambiente ao arquivo
appengine-web.xmlpara 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 compatível do ambiente de execução Java.
- SMTP_HOST: o endereço do host SMTP. Por exemplo,
smtp.sendgrid.netouexample.mailjet.com. - SMTP_USER: o nome de usuário de login SMTP da sua conta. Por exemplo,
apiKey. - SMTP_PASSWORD: a senha ou chave de API que você recebeu do provedor de e-mail terceirizado. Para melhorar a segurança, recomendamos que você use o Secret Manager para armazenar a chave de API em vez de colocá-la no arquivo
appengine-web.xml.
Execute o comando abaixo para implantar seu aplicativo:
mvn package appengine:deploy
Testar 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:
- Acione a parte do aplicativo que envia um e-mail.
- Verifique a Análise de registros para garantir que não haja erros relacionados às chamadas de API ou à tentativa de conexão SMTP.
- Faça login na conta do 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,Deliveredou semelhante.