En esta entrega del curso de Aplicaciones Web con Python y Flask, aprenderemos como enviar correo con Python, esto nos servirá para mejorar nuestro aprendizaje con este Framework y en concreto con Python y SMTPLIB.
![COMO ENVIAR CORREO con Python](https://flask.palletsprojects.com/en/3.0.x/_images/flask-horizontal.png)
COMO ENVIAR CORREO con Python | Correo electrónico GMAIL con Python
Sobre la biblioteca SMTPLIB para enviar correo html con python
SMTPLIB
es una biblioteca de Python que proporciona una interfaz simple para enviar correos electrónicos a través del protocolo SMTP (Simple Mail Transfer Protocol). Con esta biblioteca, los desarrolladores pueden enviar correos electrónicos desde sus aplicaciones de Python de manera fácil y eficiente. Permite conectar con un servidor SMTP, autenticarse si es necesario, y enviar correos electrónicos con o sin archivos adjuntos. Es una herramienta fundamental para tareas que involucran comunicación por correo electrónico en aplicaciones Python, como notificaciones, confirmaciones de registro, informes automatizados y más. La simplicidad y la robustez de SMTPLIB
lo convierten en una opción popular para el envío de correos electrónicos desde aplicaciones Python.
¿Te perdiste la lección anterior? aquí te la dejo:
Lección 3: Aplicaciones Web con Python y Flask – Sumar dos números
En la lección anterior, aprendimos paso a paso como crear tu aplicación para sumar dos números con Python y Flask!.
🌟 ¡Visita Nuestra Tienda para Programadores! 🌟Descubre Códigos Fuente, Cursos, Software, Computadoras, Accesorios y Regalos Exclusivos. ¡Todo lo que necesitas para llevar tu programación al siguiente nivel!
Por que es importante aprender SMTPLIB | COMO ENVIAR CORREO con Python
- Comunicación efectiva: Aprender a usar
SMTPLIB
permite enviar correos electrónicos de manera programática, facilitando la comunicación efectiva con usuarios, clientes o colegas. - Automatización: Permite automatizar tareas relacionadas con el envío de correos electrónicos, como notificaciones, recordatorios y reportes, lo que ahorra tiempo y esfuerzo.
- Integración versátil: Se integra fácilmente en una amplia gama de aplicaciones y proyectos de Python, desde aplicaciones web hasta scripts de automatización y herramientas de administración de sistemas.
- Personalización: Permite personalizar el contenido de los correos electrónicos según las necesidades específicas del proyecto o la audiencia, lo que mejora la relevancia y la efectividad de la comunicación.
- Acceso a funciones avanzadas: Ofrece acceso a funcionalidades avanzadas como el envío de correos electrónicos con archivos adjuntos, autenticación con servidores SMTP seguros y manipulación de encabezados de correo electrónico, lo que amplía las posibilidades de aplicación.
Otras funciones que puedes usar con SMTPLIB
Además de enviar correos en texto plano, usando esta biblioteca de Python, puedes formatear usando HTML, para presentar y enviar mensajes de correos mucho más elaborados, así mismo; enviar archivos adjuntos que se pueden recuperar mediante un input de tipo «file», en un formulario HTML, veamos un ejemplo:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
# Parámetros de configuración de tu correo
from_email = 'tucorreo@gmail.com'
to_email = 'destinatario@example.com'
subject = 'Asunto del correo'
# Encabezado y objeto MIME
msg = MIMEMultipart()
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = subject
# Cuerpo del mensaje en HTML (Aquí puedes añadir todo el HTML que necesites, imágenes, archivos, enlaces, tablas, etc.)
html_content = """
<html>
<body>
<h1>Este es un mensaje HTML</h1>
<p>¡Hola! Este es un mensaje HTML con un archivo adjunto.</p>
</body>
</html>
"""
# Adjuntar el cuerpo del mensaje HTML
body = MIMEText(html_content, 'html')
msg.attach(body)
# Adjuntar un archivo al mensaje, aquí paso un archivo txt, pero este archivo lo puedes recuperar de tu formulario HTML.
filename = 'archivo.txt'
with open(filename, 'rb') as file:
part = MIMEApplication(file.read(), Name=filename)
part['Content-Disposition'] = f'attachment; filename="{filename}"'
msg.attach(part)
# Conectar al servidor SMTP y enviar el correo
with smtplib.SMTP('smtp.gmail.com', 587) as server:
server.starttls()
server.login(from_email, 'tucontraseña')
server.sendmail(from_email, to_email, msg.as_string())
print('Correo enviado correctamente')