Migra del servicio de Correo electrónico de App Engine a un servicio basado en SMTP

Para mejorar la seguridad del correo electrónico y garantizar la entrega confiable y de gran volumen, migra del servicio de correo electrónico heredado 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 del servicio de correo electrónico de App Engine 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 entorno de ejecución compatible. En esta guía, no se proporcionan los 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 el servicio de correo electrónico heredado de App Engine:

  • Los servicios basados en SMTP proporcionan una mejor entrega de correo electrónico, ya que reducen la probabilidad de que los correos electrónicos se marquen como spam.

  • Con los servicios basados en SMTP, puedes acceder a informes de estadísticas detallados sobre las aperturas, los clics y los 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 la reputación del remitente y la autenticación de correo electrónico.

  • Aumento de los límites de envío diarios en comparación con el servicio de correo electrónico heredado 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:

  1. Configura el servicio de correo electrónico basado en SMTP para obtener tus credenciales de SMTP.
  2. Verifica la identidad del remitente para autenticarte con tu dominio o dirección de correo electrónico.
  3. Configura tus archivos fuente con tus credenciales de SMTP y el método de envío, y, luego, implementa tu aplicación.
  4. 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 elegido:

  • Host SMTP: Es la dirección del servidor SMTP que se usa para enviar correo electrónico. Por ejemplo, smtp.sendgrid.net o example.mailjet.com.

  • Puerto: Es el número de puerto de la conexión. Por ejemplo, 587 para el encriptado TLS.

  • Nombre de usuario: Es el nombre de usuario de acceso SMTP de tu cuenta.

  • Contraseña o clave de API: Es la contraseña de tu cuenta o una clave de API, que actúa como la contraseña para 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 de DNS específicos, 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 la identidad del remitente antes de continuar con la configuración de la aplicación.

Para agregar registros DNS al host de tu dominio, sigue estos pasos:

  1. Accede al servicio de tu proveedor de DNS.
  2. Navega a la página de administración de DNS de tu dominio.
  3. 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.

Los cambios de DNS pueden tardar unas horas en activarse. Si falla la verificación, espera un tiempo y vuelve a intentarlo.

Configura tus archivos fuente

Para incluir la funcionalidad SMTP, sigue estos pasos:

  1. Agrega la siguiente versión del SDK de Python a tu archivo requirements.txt:

    appengine-python-standard==2.0.0
    
  2. Agrega el siguiente código a tu archivo app.yaml para 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: una versión compatible del entorno de ejecución de Python.
    • SMTP_HOST: la dirección del host SMTP. Por ejemplo, smtp.sendgrid.net o example.mailjet.com.
    • SMTP_USER: el nombre de usuario de acceso 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 la configuración APPENGINE_ADMIN_EMAIL_RECIPIENTS.
  3. 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:

  1. Activa la parte de tu aplicación que envía un correo electrónico.
  2. 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.
  3. Accede a la cuenta de tu proveedor de correo electrónico externo (p.ej., Mailgun, Mailjet, SendGrid) y consulta su feed de actividad, registros o panel de entrega. Tu correo electrónico de prueba debería aparecer en el feed con un estado de entrega marcado como Processed, Delivered o similar.

¿Qué sigue?