Para mejorar la seguridad del correo electrónico y garantizar la entrega confiable de grandes volúmenes de correos electrónicos, migra de la API de Mail heredada a un servicio de proveedor de correo electrónico externo estándar que use el Protocolo simple de transferencia de correo (SMTP), como SendGrid, Mailgun o Mailjet.
En esta guía, se describe el proceso para migrar los servicios de correo electrónico saliente de la API de Mail a un servicio de correo electrónico basado en SMTP. Puedes aplicar estas instrucciones para migrar a cualquier proveedor de correo electrónico externo basado en SMTP o usar otro tiempo de ejecución compatible. En esta guía, no se proporcionan pasos para migrar la mensajería entrante que usa una alternativa de terceros.
El estándar SMTP ofrece los siguientes beneficios en comparación con la API de Mail heredada de App Engine:
Los servicios basados en SMTP mejoran la entrega de correos electrónicos, ya que reducen la probabilidad de que se marquen como spam.
Con los servicios basados en SMTP, puedes acceder a informes de estadísticas detallados sobre aperturas, clics y rebotes de correos electrónicos. Estos informes proporcionan información útil sobre cómo interactúan los usuarios con tus correos electrónicos.
Tienes el control total de tu reputación como remitente y la autenticación de correo electrónico.
Límites de envío diarios más altos en comparación con la API de Mail heredada, con acceso a funciones avanzadas, como pruebas A/B, segmentación y plantillas.
Descripción general del proceso de migración
El proceso de migración incluye los siguientes pasos:
- Configura el servicio de correo electrónico basado en SMTP para obtener tus credenciales de SMTP.
- Verifica tu identidad de remitente para autenticarte con tu dominio o dirección de correo electrónico.
- Configura tus archivos fuente con tus credenciales de SMTP y el método de envío, y, luego, implementa tu aplicación.
- Prueba tu aplicación para verificar la funcionalidad del correo electrónico.
Configura el servicio de correo electrónico basado en SMTP
Configura una cuenta con un proveedor de correo electrónico externo estándar que use SMTP, como SendGrid, Mailgun o Mailjet, y recupera la siguiente información del proveedor que elijas:
Host SMTP: Es la dirección del servidor SMTP que se usa para enviar correo. Por ejemplo,
smtp.sendgrid.netoexample.mailjet.com.Puerto: Es el número de puerto de la conexión. Por ejemplo,
587para la encriptación TLS.Nombre de usuario: Es el nombre de usuario de acceso a SMTP de tu cuenta.
Contraseña o clave de API: La contraseña de tu cuenta o una clave de API, que actúa como la contraseña de la conexión SMTP. En el caso de algunos proveedores, como SendGrid, el nombre de usuario es un valor fijo, como
apikey, y la clave de API se usa como contraseña.
Verifica la identidad del remitente
Para evitar el spam, todos los servicios de correo electrónico requieren que verifiques que eres el propietario de la dirección de correo electrónico o el dominio desde el que envías correos electrónicos. Este paso suele implicar agregar detalles específicos del DNS, como registros CNAME, a la página de administración de DNS del host de tu dominio.
Sigue las instrucciones de tu proveedor para verificar tu identidad de remitente antes de continuar con la configuración de la aplicación.
Para agregar registros DNS al host de tu dominio, sigue estos pasos:
- Accede al servicio de tu proveedor de DNS.
- Navega a la página de administración de DNS de tu dominio.
Agrega los registros CNAME exactamente como los proporciona tu proveedor de servicios de correo electrónico. Para cada registro, haz lo siguiente:
- En el campo Nombre o Host, ingresa los detalles del host.
- En el campo Puntos o Valor, ingresa el valor.
Es posible que los cambios de DNS tarden unas horas en activarse. Si falla la verificación, espera un tiempo y vuelve a intentarlo.
Configura tus archivos fuente
Para incluir la funcionalidad de SMTP, sigue estos pasos:
Ejecuta el siguiente comando para instalar Maven:
sudo apt install mavenAgrega el siguiente código a tu archivo
pom.xmlpara cambiar al servicio SMTP:Agrega la versión de la dependencia
appengine-api-1.0-sdk:<dependency> <groupId>com.google.appengine</groupId> <artifactId>appengine-api-1.0-sdk</artifactId> <version>2.0.38</version> </dependency>Actualiza el ID de tu proyecto:
<configuration> <deploy.projectId>PROJECT-ID</deploy.projectId> <deploy.version>1</deploy.version> </configuration>Reemplaza PROJECT-ID por el ID del proyecto de Google Cloud .
Agrega las siguientes variables de entorno a tu archivo
appengine-web.xmlpara incluir la configuración del remitente 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>Reemplaza lo siguiente:
- RUNTIME: Una versión del entorno de ejecución de Java compatible
- SMTP_HOST: Es la dirección del host SMTP. Por ejemplo,
smtp.sendgrid.netoexample.mailjet.com. - SMTP_USER: Es el nombre de usuario de acceso a SMTP de tu cuenta. Por ejemplo,
apiKey - SMTP_PASSWORD: La contraseña o la clave de API que obtuviste de tu proveedor de correo electrónico externo Para mejorar la seguridad, te recomendamos que uses Secret Manager para almacenar tu clave de API en lugar de colocarla en el archivo
appengine-web.xml.
Ejecuta el siguiente comando para implementar tu aplicación:
mvn package appengine:deploy
Prueba tu aplicación
La migración se realiza de forma correcta si puedes implementar la app sin errores. Para verificar que tu servicio de correo electrónico funcione, sigue estos pasos:
- Activa la parte de tu aplicación que envía un correo electrónico.
- Consulta el Explorador de registros para asegurarte de que no haya errores relacionados con las llamadas a la API o el intento de conexión SMTP.
- Accede a la cuenta de tu proveedor de correo electrónico externo (p.ej., Mailgun, Mailjet, SendGrid) y revisa sus registros, su panel de actividad o su panel de entrega. El correo electrónico de prueba debería aparecer en el feed con un estado de entrega marcado como
Processed,Deliveredo similar.
¿Qué sigue?
- Crea un secreto y accede a él con Secret Manager.
- Migra desde servicios agrupados en paquetes heredados.