|
|
||
|---|---|---|
| INSTALACION.md | ||
| README.md | ||
| cliente_correo.py | ||
| ejecutar.sh | ||
README.md
Cliente de Correo Electrónico
Cliente de correo electrónico con interfaz gráfica desarrollado en Python con soporte para SMTP, IMAP y POP3.
Características
- Envío de correos mediante SMTP (puerto 25)
- Enviar archivos adjuntos de cualquier tipo
- Múltiples archivos adjuntos por correo
- Consulta de correos mediante IMAP (puerto 143)
- Descarga de correos mediante POP3 (puerto 110)
- Inicio de sesión automático con credenciales predefinidas (levi@psp.es)
- Soporte completo para archivos adjuntos:
- Visualizar lista de adjuntos en correos recibidos
- Previsualizar adjuntos (imágenes y archivos de texto)
- Guardar adjuntos individuales o todos a la vez
- Interfaz gráfica intuitiva con Tkinter
- Soporte para múltiples codificaciones de caracteres
- Decodificación automática de encabezados
Requisitos
- Python 3.12 o superior (recomendado)
- Bibliotecas de Python:
- tkinter (incluido con Python)
- Pillow (para previsualización de imágenes)
- smtplib, imaplib, poplib, email (incluidos)
Configuración del Servidor
El cliente está configurado por defecto para conectarse a:
- IP del servidor: 10.10.0.101
- Puerto SMTP: 25
- Puerto IMAP: 143
- Puerto POP3: 110
- Web: https://10.10.0.101:20000
Instalación
- Clona o descarga este repositorio
- No se requieren dependencias adicionales
Uso
Ejecución
python cliente_correo.py
O en sistemas Unix/Linux:
python3 cliente_correo.py
Inicio de Sesión
El cliente inicia sesión automáticamente con las credenciales predefinidas:
- Usuario: levi@psp.es
- Contraseña: 1234
Si necesitas usar otras credenciales, puedes modificarlas en la pestaña "Iniciar Sesión" y hacer clic en "Conectar".
Enviar Correos (SMTP)
- Ve a la pestaña "Enviar Correo"
- Completa los campos:
- Para: Dirección de correo del destinatario
- Asunto: Asunto del correo
- (Opcional) Adjuntar archivos:
- Haz clic en "Agregar Archivo" en la sección "Adjuntar Archivos"
- Selecciona uno o varios archivos
- Los archivos aparecerán en la lista
- Puedes quitar archivos seleccionándolos y haciendo clic en "Quitar Seleccionado"
- Escribe tu mensaje en el campo "Mensaje"
- Haz clic en "Enviar Correo"
Consultar Correos (IMAP)
- Ve a la pestaña "Bandeja de Entrada (IMAP)"
- Haz clic en "Actualizar" para cargar los correos
- Selecciona un correo de la lista
- Haz clic en "Leer Seleccionado" para ver su contenido
Trabajar con Adjuntos Recibidos
Si el correo tiene archivos adjuntos:
- Los adjuntos aparecerán listados en la sección "Archivos Adjuntos"
- Para previsualizar un adjunto:
- Selecciona el adjunto de la lista
- Haz clic en "Previsualizar"
- Se abrirá una ventana mostrando el contenido (funciona con imágenes y archivos de texto)
- Para guardar un adjunto:
- Selecciona el adjunto de la lista
- Haz clic en "Guardar Adjunto"
- Elige la ubicación donde guardarlo
- Para guardar todos los adjuntos:
- Haz clic en "Guardar Todos"
- Selecciona la carpeta de destino
Descargar Correos (POP3)
- Ve a la pestaña "Descargar Correos (POP3)"
- Haz clic en "Listar Correos" para ver los correos disponibles
- Selecciona un correo de la lista o ingresa su número
- Haz clic en "Descargar Seleccionado" para ver su contenido
Estructura del Proyecto
correo/
├── cliente_correo.py # Archivo principal con toda la funcionalidad
└── README.md # Este archivo
Funcionalidades Técnicas
Clase ClienteCorreo
- crear_interfaz(): Inicializa la interfaz gráfica con pestañas
- conectar(): Establece conexión con el servidor IMAP
- enviar_correo(): Envía correos mediante SMTP
- cargar_correos_imap(): Lista correos en la bandeja de entrada
- leer_correo_imap(): Lee un correo específico mediante IMAP
- listar_correos_pop(): Lista correos disponibles mediante POP3
- descargar_correo_pop(): Descarga y muestra un correo mediante POP3
- decodificar_header(): Decodifica encabezados de correos
- obtener_cuerpo_email(): Extrae el cuerpo del mensaje
Seguridad
- Las contraseñas se manejan en memoria y no se almacenan
- Conexiones sin cifrado SSL/TLS (configuración típica de servidores internos)
- Para entornos de producción, se recomienda usar SSL/TLS
Solución de Problemas
Error de conexión
- Verifica que el servidor esté accesible en la IP 10.10.0.101
- Asegúrate de que los puertos no estén bloqueados por un firewall
- Confirma que las credenciales sean correctas
No se pueden cargar los correos
- Verifica que hayas iniciado sesión correctamente
- Asegúrate de tener correos en tu bandeja de entrada
- Revisa que el servidor IMAP/POP3 esté funcionando
Caracteres extraños en los correos
- El cliente intenta decodificar automáticamente varios encodings
- Si persisten problemas, verifica la codificación del correo original
Licencia
Este proyecto es de código abierto y está disponible para uso educativo.
Autor
Proyecto desarrollado para PSP (Programación de Servicios y Procesos)