Una aplicación web completa para gestionar correos electrónicos a través de IMAP/SMTP, desarrollada en PHP con una interfaz responsive y moderna.
- ✅ Autenticación IMAP - Login seguro con credenciales de email
- ✅ Navegación por carpetas - Acceso a todas las carpetas del buzón
- ✅ Gestión de carpetas - Crear y eliminar carpetas personalizadas
- ✅ Mover mensajes - Organizar mensajes entre carpetas
- ✅ Lista de mensajes - Vista paginada con información esencial
- ✅ Lectura de mensajes - Visualización completa con metadatos
- ✅ Marcar mensajes - Leído/No leído desde lista y vista individual
- ✅ Eliminación de mensajes - Borrado seguro con confirmación
- ✅ Búsqueda avanzada - Búsqueda simple y avanzada con criterios IMAP múltiples
- ✅ Internacionalización (i18n) - Soporte completo para Español, English y Deutsch
- ✅ Envío SMTP real - Conexión directa al servidor SMTP (no usa mail() de PHP)
- ✅ Responder mensajes - Respuesta rápida con formato automático
- ✅ Soporte TLS/SSL - Conexiones seguras SMTP
- ✅ Diseño responsive - Optimizado para móviles y escritorio
- ✅ Contenedorización Docker - Fácil despliegue y configuración
- 🧪 Herramienta de prueba SMTP - Validación de configuración independiente
- Docker y Docker Compose
- Servidor IMAP/SMTP (Gmail, Outlook, etc.)
cd /ruta/a/tu/proyecto
Edita el archivo .env
con la configuración de tu servidor de correo:
# Configuración del servidor IMAP
IMAP_SERVER=imap.gmail.com
IMAP_PORT=993
IMAP_SSL=true
# Configuración del servidor SMTP
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_SECURE=tls
# Configuración de la aplicación
APP_NAME=Mi Cliente IMAP
SESSION_SECRET=tu_clave_secreta_muy_segura_aqui
Gmail:
IMAP_SERVER=imap.gmail.com
IMAP_PORT=993
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
Outlook/Hotmail:
IMAP_SERVER=outlook.office365.com
IMAP_PORT=993
SMTP_SERVER=smtp.live.com
SMTP_PORT=587
Yahoo:
IMAP_SERVER=imap.mail.yahoo.com
IMAP_PORT=993
SMTP_SERVER=smtp.mail.yahoo.com
SMTP_PORT=587
# Construir y ejecutar
docker-compose up -d
# Ver logs
docker-compose logs -f
# Parar el servicio
docker-compose down
Abre tu navegador en: http://localhost:8080
Antes de usar la aplicación completa, puedes probar la configuración SMTP:
# Acceder a la herramienta de prueba
http://localhost:8080/test-smtp.php
Esta herramienta te permitirá:
- ✅ Validar la conexión al servidor SMTP
- 🔧 Diagnosticar problemas de configuración
- 📧 Enviar un email de prueba
- 💡 Obtener sugerencias de solución en caso de errores
- Ingresa tu email completo (ejemplo: [email protected])
- Introduce tu contraseña de email
- Para Gmail, puede necesitar una "contraseña de aplicación"
- Sidebar izquierdo: Lista de carpetas disponibles
- Área principal: Lista de mensajes de la carpeta seleccionada
- Botón "Redactar": Crear nuevo mensaje
- Botón "Gestionar Carpetas": Administrar carpetas del buzón
- Clic en asunto: Ver mensaje completo
- Botón "Ver": Abrir mensaje
- Selector "Mover a...": Mover mensaje a otra carpeta
- Botones de estado: Marcar como leído/no leído
- Botón "Eliminar": Borrar mensaje (con confirmación)
- Botón "Responder": Responder al remitente
- Crear carpetas: Nuevas carpetas personalizadas
- Ver estadísticas: Mensajes totales, no leídos, recientes
- Eliminar carpetas: Solo carpetas personalizadas (no del sistema)
- Navegación rápida: Acceso directo a cualquier carpeta
- Acceso: Botón "Buscar" en la navegación principal
- Búsqueda Simple: Búsqueda rápida por texto en todo el mensaje
- Búsqueda Avanzada: Criterios múltiples con opciones:
- Por contenido (texto, asunto, remitente, destinatario, cuerpo)
- Por estado (leído/no leído)
- Por fecha (desde/hasta fechas específicas)
- Por tamaño (mayor/menor que tamaño especificado)
- Resultados paginados: Vista organizada con información detallada
- Sugerencias dinámicas: Consejos contextuales según criterios seleccionados
- Cambio desde login: Selector de idioma en página de inicio
- Cambio desde perfil: Configuración permanente en preferencias de usuario
- Idiomas disponibles: Español, English, Deutsch
- Persistencia: El idioma se guarda automáticamente
- Interfaz completa: Toda la aplicación traducida incluyendo mensajes de error
- Completa los campos: Para, Asunto, Mensaje
- El mensaje se envía en formato texto plano
- Confirmación visual del envío exitoso
Si usas Gmail, necesitarás:
- Habilitar IMAP en la configuración de Gmail
- Crear una contraseña de aplicación:
- Ve a Configuración de cuenta de Google
- Seguridad → Verificación en 2 pasos
- Contraseñas de aplicaciones
- Genera una nueva contraseña
- Usa esta contraseña en lugar de tu contraseña normal
imaphp/
├── 🎨 assets/
│ └── style.css # Estilos CSS responsivos
├── 🔧 classes/
│ ├── ImapClient.php # Cliente IMAP con funciones de búsqueda
│ ├── SmtpClient.php # Cliente SMTP real (no usa mail())
│ ├── I18n.php # Sistema de internacionalización
│ └── UserProfile.php # Gestión de perfiles y preferencias
├── ⚙️ config/
│ └── config.php # Configuración y carga de .env
├── 🌍 lang/
│ ├── es.php # Traducciones en español
│ ├── en.php # Traducciones en inglés
│ └── de.php # Traducciones en alemán
├── .env # Variables de entorno
├── docker-compose.yml # Configuración Docker Compose
├── Dockerfile # Imagen Docker con PHP y IMAP
├── 🏠 index.php # Página de login con selector de idioma
├── 📮 mailbox.php # Lista de mensajes
├── 📄 message.php # Vista de mensaje individual
├── ✏️ compose.php # Redactar/responder mensajes
├── 🔍 search.php # Búsqueda simple y avanzada de mensajes
├── 📁 folders.php # Gestión de carpetas
├── � profile.php # Configuración de perfil y preferencias
├── �🚪 logout.php # Cerrar sesión
├── 🧪 test-smtp.php # Herramienta de prueba SMTP
├── 🌍 test-i18n-demo.php # Demo del sistema de internacionalización
└── 📚 README.md # Este archivo
- PHP 8.2 con extensión IMAP
- Cliente SMTP nativo - Conexión directa sin mail() de PHP
- Búsqueda IMAP nativa - Uso de imap_search con criterios múltiples
- Sistema de internacionalización - Soporte completo i18n con placeholders
- Gestión de perfiles de usuario - Preferencias personalizadas persistentes
- Soporte TLS/SSL para conexiones seguras
- Sesiones PHP para autenticación
- Clases orientadas a objetos para IMAP/SMTP/I18n
- Manejo de errores robusto con logging
- Paginación de mensajes y resultados de búsqueda
- Interfaz multiidioma - Español, English, Deutsch
- Búsqueda dual mode - Simple y avanzada con sugerencias dinámicas
- CSS Grid y Flexbox para layouts
- Diseño responsive con media queries
- Componentes modulares (botones, formularios, alertas)
- Paleta de colores moderna con gradientes
- Tipografía optimizada para legibilidad
- Validación de entrada en formularios
- Escape de HTML para prevenir XSS
- Sanitización de criterios de búsqueda IMAP
- Autenticación por sesión
- Validación de emails
- Confirmación de eliminación
Edita las variables CSS en assets/style.css
:
/* Colores principales */
:root {
--primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
--success-color: #51cf66;
--danger-color: #ff6b6b;
}
En mailbox.php
, línea con getMessages()
:
$result = $imapClient->getMessages($currentFolder, $page, 50); // 50 mensajes por página
En el archivo .env
:
APP_NAME=Mi Cliente de Correo Personalizado
- Verifica las credenciales de email
- Confirma que IMAP esté habilitado en tu proveedor
- Para Gmail, usa contraseña de aplicación
- Usa la herramienta de prueba:
http://localhost:8080/test-smtp.php
- Verifica la configuración SMTP en
.env
- Para Gmail, asegúrate de usar contraseña de aplicación
- Verifica que el puerto SMTP (587/465) no esté bloqueado
- Revisa los logs:
docker-compose logs
- "Connection refused": Puerto bloqueado o servidor incorrecto
- "Authentication failed": Credenciales incorrectas
- "TLS handshake failed": Problema con certificados SSL
- "Relay denied": El servidor SMTP no permite relay desde tu IP
# Reiniciar contenedor
docker-compose restart
# Reconstruir imagen
docker-compose build --no-cache
Si el puerto 8080 está en uso:
# En docker-compose.yml
ports:
- "8081:80" # Cambiar puerto
- Sin cifrado local: Las credenciales se almacenan en sesión PHP
- Dependiente de IMAP: Requiere servidor compatible
- Sin notificaciones: No hay alertas de nuevos mensajes
- Filtros y etiquetas avanzadas
- Notificaciones push de nuevos mensajes
- Soporte para múltiples cuentas de correo
- Cifrado local de credenciales
- API REST para integración externa
- Progressive Web App (PWA)
- Backup automático de configuraciones
- Calendario integrado con invitaciones por email
Proyecto de código abierto con licencia Apache 2.0
Para problemas o mejoras, revisa la documentación de: