2mail — SMTP relay desde infraestructura belga

SMTP para Python — correo de su script o app Django

Python trae SMTP integrado: con smtplib envía un mensaje en unas pocas líneas, y Django lo agrupa en su propia capa de correo con los ajustes EMAIL. Lo que no aporta ninguno de los dos es la entregabilidad: eso depende del servidor por el que envía.

Tanto si tiene un script suelto como una aplicación Flask o un proyecto Django, los ajustes son los mismos cinco datos. Los apunta a su relay y el código que compone los mensajes se queda igual.

Por qué falla sin relay

El correo de Python sale a menudo desde el segundo plano: un informe nocturno, una tarea programada que envía facturas, un script que avisa cuando una medición se sale del margen. Nadie está mirando, así que nadie nota que el servidor receptor los rechaza en silencio. En Django se suma la sorpresa clásica al publicar: en desarrollo todo va a la consola y en producción a proveedores reales que sí comprueban la reputación.

Configurar el SMTP en Python

1

Obtener los datos

Acceda a su cuenta de 2mail y obtenga allí su servidor SMTP, su nombre de usuario y su contraseña.

2

Introducirlos en Python

En un proyecto Django pone los ajustes EMAIL en la configuración: el backend SMTP como backend de correo, el host del relay, el puerto 587, la opción STARTTLS activada, el usuario y la contraseña, y una dirección de remitente por defecto en su propio dominio. Si trabaja directamente con smtplib, conecta con el host en el puerto 587, llama a starttls, inicia sesión con usuario y contraseña y envía después el mensaje. En ambos casos, lea los datos de variables de entorno y no del código.

3

Autenticar el dominio

Asegúrese de que SPF, DKIM y DMARC de su dominio son correctos, para que los destinatarios puedan verificar que el correo viene de usted.

4

Probar

Envíe un mensaje de prueba a una dirección de un gran proveedor y compruebe que llega a la bandeja de entrada y no a la carpeta de spam.

Los campos que pide Python

Cada plataforma los llama de una manera algo distinta, pero siempre son los mismos cinco. Los valores concretos dependen de su cuenta y los encuentra en su cuenta de 2mail: cópielos de ahí para asegurarse de usar los correctos.

Campo Qué introducir
Servidor SMTP (host)El nombre del servidor de su cuenta de 2mail.
PuertoEl puerto que corresponde al cifrado elegido; su cuenta le indica cuál.
CifradoTLS. No envíe nunca sin cifrar: de lo contrario sus credenciales viajan en claro.
Nombre de usuarioEl acceso SMTP de su cuenta de 2mail.
ContraseñaLa contraseña correspondiente. No use nunca la contraseña del buzón de un empleado.

Qué correos envía Python

Una vez configurado el relay, todos estos pasan por 2mail: no tiene que configurarlos uno a uno.

Recuperación de contraseña y verificación de correo desde Django
Informes y exportaciones programados desde tareas cron
Avisos de scripts de monitorización y de tratamiento de datos
Facturas y confirmaciones de una aplicación web
Informes de error a los administradores

Errores frecuentes con Python

La opción TLS y el puerto deben coincidir

Django tiene dos ajustes de TLS distintos: uno para STARTTLS y otro para TLS desde el principio. Active solo el ajuste de STARTTLS, que es el que corresponde al puerto 587. Activar los dos da un error de configuración; no activar ninguno envía su acceso sin cifrar, y un relay rechaza eso con razón.

Una conexión por serie, no por mensaje

Un script que abre una conexión SMTP nueva para cada uno de mil mensajes se comporta como un atacante. Abra una conexión, envíe la serie y ciérrela. Django tiene una función para enviar varios mensajes por una misma conexión.

Errores silenciosos en tareas de fondo

Una excepción en una tarea cron desaparece en un archivo de registro que nadie lee. Capture los errores al enviar y notifíquelos en algún sitio donde se vean, y conecte los webhooks de 2mail para la entrega y el rebote, para ver también lo que falla tras la entrega.

SPF, DKIM y DMARC explicados Sobre la entregabilidad

¿Otra plataforma?

SMTP es un protocolo estándar: cualquier sistema que hable SMTP —un CRM, un ERP, una aplicación propia o un servidor— puede enviar a través de 2mail con esos mismos cinco campos.

Preguntas frecuentes sobre el SMTP para Python

smtplib y Django envían, pero no aportan entregabilidad: eso depende del servidor por el que envía. Una función de correo local o un servidor recién montado no tiene autenticación ni reputación. Un SMTP relay con registros SPF, DKIM y DMARC correctos lo resuelve.
El backend SMTP como backend de correo, el host del relay, el puerto 587, la opción STARTTLS activada, su usuario y su contraseña, y una dirección de remitente por defecto en su propio dominio. Guarde el acceso en variables de entorno, no en la propia configuración.
Conecte con el host en el puerto 587, llame a starttls, inicie sesión con usuario y contraseña y envíe el mensaje. Para varios mensajes, use la misma conexión en lugar de abrir una nueva por cada uno.
En su cuenta de 2mail, por aplicación. Están ligados a la cuenta, así que no los publicamos en la web. Cree preferiblemente un acceso propio por script o por aplicación, para poder revocarlo por separado y seguir ese tráfico aparte.
Llamar ahora
Enviar un correo