Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Python
Code

Enviar correos electrónicos en Python con SMTP

by
Difficulty:IntermediateLength:MediumLanguages:

Spanish (Español) translation by Luis Chiabrera (you can also view the original English article)

Este tutorial dará una introducción a SMTP, un módulo de Python utilizado para enviar correos. También demostrará cómo enviar diferentes tipos de correo electrónico, como mensajes de texto simples, correos electrónicos con archivos adjuntos y correos electrónicos con contenido HTML.

Importar a SMTP

El Protocolo simple de transferencia de correo (SMTP en inglés) maneja el envío y el correo electrónico de enrutamiento entre los servidores de correo.

En Python, el módulo smtplib define un objeto de sesión de cliente SMTP que se puede usar para enviar correo a cualquier máquina de Internet con un daemon de escucha SMTP o ESMTP.

He aquí cómo crear un objeto SMTP.

Crear y enviar un correo electrónico simple

La siguiente secuencia de comandos le permitirá enviar un correo electrónico a través del servidor SMTP de Gmail. Sin embargo, Google no permitirá el inicio de sesión a través de smtplib porque ha marcado este tipo de inicio de sesión como "menos seguro". Para solucionar este problema, vaya a https://www.google.com/settings/security/lesssecureapps mientras está conectado a su cuenta de Google y a "Permitir aplicaciones menos seguras". Vea la captura de pantalla a continuación.

Create and Send a Simple Email

Seguiremos los siguientes pasos para lograr este proceso:

  • Crear un objeto SMTP para la conexión al servidor.
  • Ingrese a su cuenta.
  • Defina los encabezados de sus mensajes y las credenciales de inicio de sesión.
  • Cree un objeto de mensaje MIMEMultipart y adjunte los encabezados correspondientes, es decir, desde, hasta y Asunto.
  • Adjunte el mensaje al mensaje objeto MIMEMultipart.
  • Finalmente, envíe el mensaje.

Este proceso es tan simple como se muestra a continuación.

Tenga en cuenta que las direcciones 'Para' y 'De' deben incluirse explícitamente en los encabezados de los mensajes.

Crear y enviar un correo electrónico con un archivo adjunto

En este ejemplo, vamos a enviar un correo electrónico con un archivo adjunto de imagen. El proceso es similar al envío de un correo electrónico de texto sin formato.

  • Crea un objeto SMTP para la conexión al servidor.
  • Ingrese a su cuenta.
  • Defina los encabezados de sus mensajes y las credenciales de inicio de sesión.
  • Cree un objeto de mensaje MIMEMultipart y adjunte los encabezados correspondientes, es decir, desde, hasta y Asunto.
  • Lea y adjunte la imagen al mensaje objeto MIMEMultipart.
  • Finalmente, envíe el mensaje.

La clase MIMEImage es una subclase de MIMENonMultipart que se utiliza para crear objetos de mensaje MIME de tipos de imagen. Otras clases disponibles incluyen
MIMEMessage y MIMEAudio.

Crear y enviar correos electrónicos HTML

Lo primero que vamos a hacer es crear una plantilla de correo electrónico HTML.

Crear una plantilla HTML

Aquí está el código HTML para la plantilla, y contiene dos columnas de tabla, cada una con una imagen y contenido de vista previa. Si prefiere una solución profesional ya preparada, obtenga nuestras mejores plantillas de correo electrónico. Tenemos una serie de opciones receptivas con características fáciles de personalizar para comenzar.

La plantilla finalmente se verá así cuando se complete:

The HTML Template

A continuación se muestra la secuencia de comandos para enviar un correo electrónico con contenido HTML. El contenido de la plantilla será nuestro mensaje de correo electrónico.

Ejecute su código, y si no ocurre ningún error, entonces el correo electrónico fue exitoso. Ahora vaya a su bandeja de entrada y debería ver su correo electrónico como contenido HTML muy bien formateado.

Formatted HTML email

Conclusión

Este tutorial ha cubierto la mayor parte de lo que se necesita para enviar correos electrónicos para su aplicación. Hay varias API disponibles para enviar correos electrónicos, por lo que no tiene que empezar desde cero, p.e. SendGrid, pero también es importante entender lo básico. Para obtener más información, visite los documentos de Python.

Además, no dude en ver lo que tenemos disponible para la venta y para el estudio en Envato Market, y por favor haga todas las preguntas y brinde sus valiosos comentarios utilizando el feed mostrado anteriormente.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.