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 actualizar el SDK de App Engine a la versión más reciente:
# Ensure your virtual environment is active pip install --upgrade appengine-python-standard # Save the new version to your requirements file pip freeze > requirements.txtAgrega el siguiente código a tu archivo
app.yamlpara cambiar al servicio SMTP:runtime: RUNTIME # a supported python version env_variables: # Enable the SMTP service. APPENGINE_USE_SMTP_MAIL_SERVICE: "true" # --- SMTP Server Configuration --- # The server address from your mail provider APPENGINE_SMTP_HOST: "SMTP_HOST" # The recommended port for TLS connections APPENGINE_SMTP_PORT: "587" # The username for your SMTP login APPENGINE_SMTP_USER: "SMTP_USER" # The API key or password APPENGINE_SMTP_PASSWORD: "SMTP_PASSWORD" # Use TLS for a secure connection APPENGINE_SMTP_USE_TLS: "true" # --- For sending emails to Admins --- # A comma-separated list of admin email addresses. # This is required if you use the send_mail_to_admins() function. APPENGINE_ADMIN_EMAIL_RECIPIENTS: "admin@example.com,another-admin@example.com"Reemplaza lo siguiente:
- RUNTIME: Es una versión del entorno de ejecución de Python 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
app.yaml. - Si no usas la función
send_mail_to_admins(), omite el parámetro de configuraciónAPPENGINE_ADMIN_EMAIL_RECIPIENTS.
Ejecuta el siguiente comando para implementar tu aplicación:
gcloud app 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.