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 | [email protected] |
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.com
por defecto) - Puerto (
587
por 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.py
El ejecutable estará en la carpeta dist/
.
Si quieres ocultar la consola, cambia
console=True
porconsole=False
en 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
openpyxl
instalado.
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