enter image description hereEnviar emails con Python es muy sencillo y sólo debes agregar ciertos parámetros para que esto funcione. Se debe tener a la mano un servidor SMTP o bien una cuenta de Gmail que admita envío de email usando dirección de email y clave de acceso.

Primero se importan las librerías necesarias:

#Enviar email con Python
import smtplib
from email.mime.text import MIMEText
from email.utils import formatdate
from email.mime.multipart import MIMEMultipart

Recordemos que para importar librerías en Python antes deben estar instaladas usando PIP.

Enseguida debemos configurar los parámetros del servidor SMTP:

# CONFIGURACIÓN DEL SERVIDOR SMTP
smtp_server = "mail.server.com" #O tu servidor smtp de Gmail
smtp_port = 587 # Puerto para TLS
smtp_user = "info@gmail.com" #O tu dirección de Gmail
smtp_password = "*******" # Tu clave de correo electrónico

Después se debe crear el mensaje. el emisor y receptor:

# Crear el mensaje y el receptor
subject = "Hola, te escribo desde mi programa de Python"
body = "ESpero que encuentres este curso interesante"
sender_email = "info@devwapps.com"
receiver_email = "emoralest@gmail.com" #La persona que recibe el correo

Ahora debemos escribir el objeto MultiPart con el cual el servidor SMTP podrá enviar correctamente el correo al receptor:

# CREAR EL OBJETO MULTIPART 
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = receiver_email
message['Subject'] = subject
#Hack , sin la fecha el scritp lanza error
message['Date'] = formatdate(localtime = True)

# Adjuntar el mensaje
message.attach(MIMEText(body, 'plain')) #O HTML según sea el caso

El objeto MultiPart debe tener la propiedad "Date" de lo contrario el mensaje no se entregará.

Y finalmente iniciaremos la conexión con el servidor y enviaremos el mensaje. En caso de error debemos capturar el mensaje de error y mostrar qué salió mal:

# Iniciar la conexión al servidor SMTP
try:
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls() #Iniciar el modo seguro TLS
    server.login(smtp_user, smtp_password) #Inciar sesión en el servidor smtp
    text = message.as_string() #Convertir el mensaje a texto
    server.sendmail(sender_email, receiver_email, text) #Enviar  el correo
    print("Correo enviado con éxito")
except Exception as e:
    print(f'Error al enviar el correo. Causa: {e}')
finally:
    server.quit() #Cerrar la conexión al servidor SMTP

Eso es todo.

En caso de que presente problemas este script en python para enviar emails, házmelo saber.

El código lo puedes descargar en el repositorio de Github.

Artículos Relacionados

Comentarios