9.8 KiB
Guía de Pruebas - Cliente de Correo Electrónico
Proyecto1AVApsp - Sesión del 16-19 de Febrero 2026
Esta guía te ayudará a probar todas las funcionalidades recién implementadas en el cliente de correo.
🔧 CORRECCIÓN APLICADA (19 Feb 2026)
Problema: Error AttributeError: '_tkinter.tkapp' object has no attribute 'notes' al iniciar la aplicación
Causa: La función _load_mail_credentials() intentaba escribir en el log antes de que el widget notes se hubiera creado
Solución: Modificada la función _log() (app.py:4304) para verificar si el widget existe antes de usarlo
Estado: ✅ CORREGIDO - La aplicación ahora arranca sin errores
✅ FUNCIONALIDADES IMPLEMENTADAS EN ESTA SESIÓN
1. Guardado automático de credenciales
2. Envío a múltiples destinatarios
3. Guardado de correos enviados en el servidor IMAP
4. Eliminación del botón "Actualizar"
5. Corrección visual de indicadores de correos no leídos
🧪 PLAN DE PRUEBAS
PRUEBA 1: Guardado de Credenciales
Objetivo: Verificar que las credenciales se guarden y carguen automáticamente
Pasos:
- Ejecuta la aplicación:
python3 app.py - Ve a la pestaña "Correos"
- Observa si los campos están precargados con tus credenciales
- Si es la primera vez, introduce:
- Usuario:
marcos@psp.es - Contraseña: tu contraseña
- Usuario:
- Marca la casilla "💾 Recordar credenciales" (debe estar marcada por defecto)
- Haz clic en "🔌 Conectar"
- Verifica que aparezca el mensaje "Credenciales guardadas correctamente" en el log
- CIERRA completamente la aplicación
- Vuelve a ejecutar:
python3 app.py - Ve a la pestaña "Correos"
Resultado esperado:
- ✅ Los campos de usuario, contraseña y servidores deben estar precargados
- ✅ El archivo
.mail_config.jsonexiste en el directorio del proyecto - ✅ Puedes conectarte sin volver a escribir las credenciales
Para probar el borrado de credenciales:
- Conecta al servidor
- Desconecta
- Desmarca "💾 Recordar credenciales"
- Vuelve a conectar
- Cierra la aplicación
- Al abrir de nuevo, los campos deben estar vacíos
PRUEBA 2: Múltiples Destinatarios
Objetivo: Verificar que se pueden enviar correos a varios destinatarios simultáneamente
Pasos:
- Conecta al servidor de correo
- Haz clic en "✉️ Nuevo correo"
- En el campo "Para:", introduce múltiples correos separados por comas:
marcos@psp.es, destinatario2@ejemplo.com, destinatario3@ejemplo.com - También puedes usar punto y coma:
marcos@psp.es; destinatario2@ejemplo.com - Introduce un asunto: "Prueba múltiples destinatarios"
- Escribe un mensaje: "Este es un correo de prueba"
- Haz clic en "📤 ENVIAR CORREO"
Resultado esperado:
- ✅ Aparece un diálogo de confirmación mostrando los 3 destinatarios
- ✅ El mensaje dice: "¿Enviar correo a 3 destinatarios?"
- ✅ Se listan todos los correos con un • al inicio
- ✅ Al confirmar, el correo se envía correctamente
- ✅ El mensaje de éxito indica "enviado a 3 destinatarios"
Prueba con email inválido:
- Intenta enviar a:
marcos@psp.es, correo-invalido, otro@ejemplo.com - Haz clic en "📤 ENVIAR CORREO"
Resultado esperado:
- ✅ Aparece advertencia: "Los siguientes emails no son válidos: correo-invalido"
- ✅ NO se envía el correo hasta que corrijas el formato
PRUEBA 3: Guardado en Carpeta "Enviados" del Servidor
Objetivo: Verificar que los correos enviados se guardan en el servidor IMAP y son visibles en Webmin
Pasos:
- Conecta al servidor de correo en la aplicación
- Envía un correo de prueba:
- Para: marcos@psp.es
- Asunto: "Prueba guardado en servidor"
- Mensaje: "Verificando que este correo se guarda en IMAP"
- Observa el log en la parte inferior de la aplicación
- Busca mensajes como:
Correo guardado en carpeta: Sent - Haz clic en el botón "📧 Enviados" en la aplicación
- Verifica que el correo aparece en la lista
- Ahora abre tu navegador y ve a:
http://10.10.0.101:20000 - Inicia sesión en Webmin
- Ve a "Correo" → "Usermin" → "Read Email" o accede directamente a tu cliente de correo Webmin
- Busca la carpeta "Sent" o "Enviados"
Resultado esperado:
- ✅ El correo aparece en la pestaña "📧 Enviados" de la aplicación
- ✅ El correo también aparece en Webmin en la carpeta de enviados
- ✅ Si abres el correo en Webmin, debe tener el contenido correcto
- ✅ Los adjuntos (si los había) también están presentes
Si falla:
- Revisa el log de la aplicación para ver qué carpeta se intentó usar
- Las carpetas probadas automáticamente son:
SentINBOX.SentEnviadosINBOX.EnviadosSent Items
- Si tu servidor usa otro nombre, aparecerá un mensaje de error en el log
PRUEBA 4: Interfaz sin Botón "Actualizar"
Objetivo: Verificar que la interfaz se actualiza automáticamente sin necesidad del botón
Pasos:
- Conecta al servidor
- Observa la barra de herramientas (arriba de la lista de correos)
- Verifica que solo hay un botón: "✉️ Nuevo correo"
- El botón "🔄 Actualizar" ya NO debe existir
- Haz clic en "📧 Enviados"
- Observa que la lista se actualiza automáticamente
- Haz clic en "📬 Entrada"
- Nuevamente, la lista se actualiza sin necesidad de botón
Resultado esperado:
- ✅ No existe el botón "🔄 Actualizar"
- ✅ La lista se actualiza automáticamente al cambiar de carpeta
- ✅ La interfaz se ve más limpia
PRUEBA 5: Indicadores Visuales de Correos No Leídos
Objetivo: Verificar que los correos no leídos se distinguen visualmente sin errores
Pasos:
- Conecta al servidor
- Ve a "📬 Entrada"
- Observa la lista de correos
- Identifica correos no leídos y leídos
Resultado esperado:
- ✅ Correos NO leídos: Tienen el emoji 🔵 al inicio y texto en negro
- ✅ Correos leídos: NO tienen emoji y el texto está en gris
- ✅ NO aparece el error: "unknown option '-font'"
- ✅ La lista se carga sin errores en el log
Apariencia visual:
🔵 [01/02/25] De: remitente@ejemplo.com | Asunto: Correo nuevo ← No leído
[31/01/25] De: otro@ejemplo.com | Asunto: Correo antiguo ← Leído (gris)
🔍 PRUEBAS ADICIONALES RECOMENDADAS
Prueba de Adjuntos con Múltiples Destinatarios
- Envía un correo a 2-3 destinatarios
- Incluye 1-2 archivos adjuntos (imágenes, PDFs)
- Verifica que todos los destinatarios reciben los adjuntos
Prueba de Imágenes Pegadas (Ctrl+V)
- Copia una imagen del portapapeles
- En la ventana de composición, presiona Ctrl+V
- Verifica que la imagen se muestra en la vista previa
- Envía el correo
- Verifica en "Enviados" que el correo tiene el adjunto
Prueba de Longitud de Lista de Destinatarios
- Intenta enviar a 10+ destinatarios
- Verifica que el diálogo de confirmación muestra todos
- Confirma que se envía correctamente
🐛 QUÉ HACER SI ENCUENTRAS ERRORES
Error: "No se puede guardar en carpeta Sent"
Solución:
- Revisa el log para ver qué carpetas se intentaron
- Conéctate a Webmin y verifica el nombre exacto de tu carpeta de enviados
- Si tiene un nombre diferente, avísame para ajustar el código
Error: "Los siguientes emails no son válidos"
Causa: Formato incorrecto de email
Solución: Verifica que todos los emails tengan el formato: usuario@dominio.ext
Error: "unknown option '-font'"
Causa: Este error ya fue corregido
Solución: Si aún aparece, verifica que estás usando la versión más reciente de app.py
Credenciales no se cargan automáticamente
Solución:
- Verifica que el archivo
.mail_config.jsonexiste - Ejecuta:
cat .mail_config.jsonpara ver su contenido - Verifica que la casilla "💾 Recordar credenciales" esté marcada al conectar
📊 REGISTRO DE PRUEBAS
Usa esta tabla para registrar tus pruebas:
| Prueba | Estado | Observaciones |
|---|---|---|
| Guardado de credenciales | ⬜ Pendiente / ✅ OK / ❌ Error | |
| Múltiples destinatarios | ⬜ Pendiente / ✅ OK / ❌ Error | |
| Guardado en servidor IMAP | ⬜ Pendiente / ✅ OK / ❌ Error | |
| Sin botón "Actualizar" | ⬜ Pendiente / ✅ OK / ❌ Error | |
| Indicadores visuales | ⬜ Pendiente / ✅ OK / ❌ Error |
📝 NOTAS IMPORTANTES
Seguridad de Credenciales
- Las contraseñas se guardan con codificación Base64 (NO es encriptación real)
- Cualquiera con acceso al archivo
.mail_config.jsonpuede decodificar la contraseña - El archivo está excluido de Git para no subirlo accidentalmente
- Para mayor seguridad en producción, considera usar
cryptography.fernet
Limitaciones Conocidas
- El servidor IMAP/SMTP debe estar accesible en
10.10.0.101 - No se usa TLS/SSL (puerto 25 y 143 son sin cifrado)
- Los correos HTML se muestran como texto plano
- No hay soporte para CC/BCC (se puede agregar si lo necesitas)
✨ PRÓXIMAS MEJORAS SUGERIDAS
Si todo funciona correctamente, estas son funcionalidades que se pueden agregar:
- Campos CC y BCC para copias de correos
- Responder y Reenviar correos existentes
- Búsqueda de correos por remitente, asunto o contenido
- Firma automática al final de cada correo
- Plantillas de correo predefinidas
- Encriptación real de contraseñas con Fernet
- Soporte TLS/SSL para conexiones seguras
- Carpetas personalizadas (Borradores, Papelera, etc.)
- Exportar correos a PDF o HTML
- Notificaciones de escritorio para correos nuevos
🚀 EJECUTAR PRUEBAS
Para empezar a probar, simplemente ejecuta:
cd /home/marcos/Documentos/Proyecto1AVApsp
python3 app.py
Y sigue las pruebas en orden del 1 al 5.
¡Buena suerte con las pruebas! Si encuentras algún problema, avísame con el mensaje de error del log.