Introducción:
En el vasto mundo del desarrollo de software, la capacidad de enviar correos electrónicos de manera efectiva es una habilidad que puede marcar la diferencia. En esta guía práctica, te sumergirás en el fascinante universo de cómo enviar correos con Python. Desde notificaciones automáticas hasta la integración de correo en tus proyectos, descubrirás el impacto positivo que esta habilidad puede tener en tus aplicaciones.
Te proporcionaremos un ejemplo práctico paso a paso, que te permitirá comprender los fundamentos y comenzar a integrar esta funcionalidad en tus proyectos. ¡Empecemos!
Sección 1: Preparativos
Antes de sumergirnos en el código, es esencial preparar el entorno. Asegúrate de tener Python instalado y considera el uso de una cuenta de correo dedicada para evitar exponer tus credenciales personales.
Si cuentas con correo de Gmail, te proporcionamos la guía para generar las contraseñas para uso en aplicaciones de terceros.
Si no encuentras la opción, dentro de seguridad, podemos escribir en el buscador lo siguiente :
de esta forma podemos generar las contraseñas necesarias.
Sección 2: Configuración del Script
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
# Iniciamos los parámetros del script
remitente = 'tu_correo@gmail.com'
destinatarios = ['destinatario@gmail.com']
asunto = 'Asunto del Correo'
cuerpo = 'Cuerpo del Correo'
ruta_adjunto = 'archivo_adjunto.txt' # Ruta del archivo adjunto
nombre_adjunto = 'archivo_adjunto.txt' # Nombre del archivo adjunto
En esta sección, configuramos los parámetros básicos del correo, incluyendo la dirección del remitente, destinatarios, asunto y cuerpo del mensaje. Es importante destacar que se recomienda utilizar una cuenta de Gmail como remitente para este ejemplo.
Sección 3: Creación del Objeto Mensaje
# Creamos el objeto mensaje mensaje = MIMEMultipart() # Establecemos los atributos del mensaje mensaje['From'] = remitente mensaje['To'] = ", ".join(destinatarios) mensaje['Subject'] = asunto # Agregamos el cuerpo del mensaje como objeto MIME de tipo texto mensaje.attach(MIMEText(cuerpo, 'plain'))
En esta sección, creamos el objeto mensaje utilizando la biblioteca email.mime. Establecemos los atributos del mensaje, como el remitente, destinatarios y el asunto. También adjuntamos el cuerpo del mensaje al objeto MIME.
Sección 4: Adjuntar Archivos
# Abrimos el archivo que vamos a adjuntar
if ruta_adjunto:
archivo_adjunto = open(ruta_adjunto, 'rb')
# Creamos un objeto MIME base
adjunto_MIME = MIMEBase('application', 'octet-stream')
# Y le cargamos el archivo adjunto
adjunto_MIME.set_payload((archivo_adjunto).read())
# Codificamos el objeto en BASE64
encoders.encode_base64(adjunto_MIME)
# Agregamos una cabecera al objeto
adjunto_MIME.add_header('Content-Disposition', 'attachment', filename=nombre_adjunto)
# Y finalmente lo agregamos al mensaje
mensaje.attach(adjunto_MIME)
Aquí, implementamos la lógica para adjuntar archivos al correo electrónico. Verificamos si se proporciona una ruta de archivo adjunto y, en caso afirmativo, cargamos el archivo en el objeto MIME y lo adjuntamos al mensaje.
Sección 5: Enviar el Correo
# Creamos la conexión con el servidor sesion_smtp = smtplib.SMTP('smtp.gmail.com', 587) # Ciframos la conexión sesion_smtp.starttls() # Iniciamos sesión en el servidor, coloca las contraseñas generadas en la primera etapa de este blog sesion_smtp.login('tu_correo@gmail.com', 'tu_contraseña') # Convertimos el objeto mensaje a texto texto = mensaje.as_string() # Enviamos el mensaje sesion_smtp.sendmail(remitente, destinatarios, texto) # Cerramos la conexión sesion_smtp.quit()
En esta última sección, establecemos la conexión con el servidor de Gmail, ciframos la conexión utilizando starttls(), iniciamos sesión con las credenciales del remitente y enviamos el mensaje utilizando sendmail(). Finalmente, cerramos la conexión.
Conclusión:
¡Felicidades! Has aprendido a enviar correos electrónicos utilizando Python. Este ejemplo básico puede servir como punto de partida para integrar funcionalidades de correo electrónico en tus aplicaciones y proyectos. Explora y experimenta con estos conceptos para potenciar aún más tus habilidades de desarrollo. ¡Buena codificación!