correo/README.md

89 lines
3.8 KiB
Markdown

# Cliente de Correo Electrónico (Python + Tkinter)
Este proyecto implementa un cliente de correo electrónico completo con interfaz gráfica (GUI) desarrollado en **Python** utilizando **Tkinter**. La aplicación soporta los tres protocolos fundamentales de correo electrónico: **SMTP** (envío), **IMAP** (gestión remota) y **POP3** (descarga local).
![Python](https://img.shields.io/badge/Python-3.11%2B-blue)
![Tkinter](https://img.shields.io/badge/GUI-Tkinter-green)
## 🚀 Características Principales
* **Interfaz Gráfica Intuitiva**: Diseño basado en pestañas para separar funcionalidades (Login, Enviar, Bandeja, Descargas).
* **Soporte Multi-Protocolo**:
* **SMTP (Puerto 25)**: Envío de correos electrónicos con soporte para múltiples destinatarios.
* **IMAP (Puerto 143)**: Visualización y gestión de la bandeja de entrada en tiempo real.
* **POP3 (Puerto 110)**: Descarga de mensajes desde el servidor al cliente local.
* **Gestión de Adjuntos**:
* Envío de archivos adjuntos de cualquier tipo.
* Visualización y descarga de adjuntos recibidos.
* **Previsualización integrada** para imágenes y archivos de texto sin necesidad de guardarlos.
* Menú contextual (clic derecho) para guardar adjuntos individuales o en lote.
* **Lectura de Correos**: Decodificación automática de cabeceras y cuerpos de mensaje (HTML/Texto plano).
## 📋 Requisitos Previos
* **Python 3.11 o superior** (Recomendado 3.12).
* Librerías estándar de Python (incluidas por defecto):
* `tkinter` (Interfaz gráfica)
* `smtplib`, `imaplib`, `poplib` (Protocolos de red)
* `email` (Manejo de formato MIME)
* Librería externa para imágenes:
* `Pillow` (PIL)
### Instalación de dependencias
```bash
pip install pillow
```
## 🔧 Instalación y Ejecución
### 1. Clonar o descargar el proyecto
Asegúrate de tener todos los archivos en una misma carpeta:
* `cliente_correo.py`
* `ejecutar.sh`
* `INSTALACION.md`
### 2. Configuración del Servidor
Por defecto, el cliente está configurado para un servidor local. Puedes modificar la IP en el archivo `cliente_correo.py` o ingresarla en la interfaz de login.
* IP por defecto: `10.10.0.101`
* Credenciales predefinidas: `levi@psp.es` / `1234`
### 3. Ejecutar la aplicación
**En macOS / Linux (Recomendado):**
Utiliza el script incluido que busca automáticamente la versión correcta de Python:
```bash
chmod +x ejecutar.sh
./ejecutar.sh
```
**Método estándar (Cualquier SO):**
```bash
python3 cliente_correo.py
```
> **Nota para usuarios de macOS**: Si encuentras problemas con la versión de Tkinter, consulta el archivo [INSTALACION.md](INSTALACION.md) para una guía detallada de solución.
## 📂 Estructura del Proyecto
```
.
├── cliente_correo.py # Código fuente principal de la aplicación
├── ejecutar.sh # Script lanzador para macOS/Linux (verifica versión Python)
├── INSTALACION.md # Guía específica para solucionar errores de entorno en Mac
└── README.md # Este archivo
```
## ⚙️ Funcionamiento Interno
El cliente utiliza las siguientes librerías para la comunicación de red:
1. **`smtplib`**: Se conecta al puerto 25 para enviar mensajes construidos con `MIMEMultipart`.
2. **`imaplib`**: Se conecta al puerto 143, permite listar correos (`search`), obtener cabeceras (`fetch`) y leer contenido bajo demanda.
3. **`poplib`**: Se conecta al puerto 110, permitiendo obtener el número total de mensajes y descargarlos secuencialmente.
## 🛠️ Solución de Problemas Comunes
* **Error de conexión**: Verifica que la IP del servidor sea alcanzable y que los servicios de correo (Postfix/Dovecot/Mercury) estén corriendo en los puertos estándar (25, 110, 143).
* **Error de Tkinter en Mac**: Ejecuta `./ejecutar.sh` o revisa `INSTALACION.md`.