Automatiza el envío de documentos personalizados por correo electrónico sin usar un archivo .env. Este script permite que el usuario ingrese sus credenciales desde la interfaz, lo que lo hace ideal para compilar como .exe y compartirlo fácilmente.
- ✅ Lee un Excel con nombres, DNIs y correos.
- ✅ Asocia automáticamente documentos que empiezan con el DNI del destinatario.
- ✅ Envia cada documento por correo usando tu cuenta.
- ✅ Todo desde una interfaz gráfica sencilla y amigable.
- Python 3.8+
- Tkinter (interfaz gráfica)
- Pandas (lectura de Excel)
- SMTPLib (envío de correos)
- Mimetypes (gestión de adjuntos)
Aquí tienes un ejemplo de cómo se ve la interfaz gráfica en ejecución:
envio_automatico/
├── main.py # Script principal
├── clientes.xlsx # Archivo Excel con los destinatarios
├── Documentos/ # Carpeta con los documentos a enviar
├── requirements.txt # (opcional) Dependencias
El archivo clientes.xlsx debe tener como mínimo estas columnas:
| Nombre | Apellido | DNI | |
|---|---|---|---|
| Juan | Pérez | 12345678A | juan@email.com |
Los archivos en la carpeta Documentos/ deben comenzar con el DNI del destinatario, por ejemplo:
Documentos/
├── 12345678A_factura.pdf
├── 87654321B_certificado.pdf
- Ejecuta el script con:
python main.py-
Ingresa:
- Tu email (remitente)
- Tu clave de aplicación
- Servidor SMTP (
smtp.gmail.compor defecto) - Puerto (
587por defecto)
-
Selecciona el archivo Excel y la carpeta con documentos.
-
Haz clic en "Enviar Correos" y observa la magia. 🧙♂️✨
Si usas Gmail, no puedes usar tu contraseña normal. Necesitas generar una contraseña de aplicación:
-
Activa la verificación en dos pasos:
👉 https://myaccount.google.com/security -
Ve a Contraseñas de Aplicaciones:
👉 https://myaccount.google.com/apppasswords -
Crea una clave para "Correo" → "Otro dispositivo" (por ejemplo, "PythonApp")
-
Usa esa clave en la GUI como "clave de aplicación"
¿Quieres compartir este programa sin que el usuario necesite tener Python?
- Instala PyInstaller:
pip install pyinstaller- Genera el
.exe:
pyinstaller --onefile main.pyEl ejecutable estará en la carpeta dist/.
Si quieres ocultar la consola, cambia
console=Trueporconsole=Falseen el.spec.
- ❌
Authentication failed→ Usa una contraseña de aplicación válida. - ❌ No se envían documentos → Verifica que los nombres de archivos empiecen con el DNI.
- ❌ Error de Excel → Asegúrate de tener
openpyxlinstalado.
MIT License — úsalo, compártelo, mejóralo y no envíes spam 😜
Hecho con cariño, automatización y café(con Leche) ☕
por Matias Palomino Luna
