Go to file
Levi Planelles ff1020fe87
Add video links to README
Added links to functionality and explanatory videos.
2026-03-02 19:43:29 +01:00
INSTALACION.md first commit 2026-03-02 19:35:01 +01:00
README.md Add video links to README 2026-03-02 19:43:29 +01:00
cliente_correo.py first commit 2026-03-02 19:35:01 +01:00
ejecutar.sh first commit 2026-03-02 19:35:01 +01:00

README.md

Cliente de Correo Electrónico (Python + Tkinter)

VIDEO FUNCIONALIDAD https://youtu.be/OMbzm-YJ1Zg

VIDEO EXPLICATIVO CÓDIGO https://youtu.be/KUiz4sP8UDw

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 Tkinter

🚀 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

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:

chmod +x ejecutar.sh
./ejecutar.sh

Método estándar (Cualquier SO):

python3 cliente_correo.py

Nota para usuarios de macOS: Si encuentras problemas con la versión de Tkinter, consulta el archivo 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.