Proyecto1AVApsp/TESTING_GUIDE.md

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:

  1. Ejecuta la aplicación: python3 app.py
  2. Ve a la pestaña "Correos"
  3. Observa si los campos están precargados con tus credenciales
  4. Si es la primera vez, introduce:
    • Usuario: marcos@psp.es
    • Contraseña: tu contraseña
  5. Marca la casilla "💾 Recordar credenciales" (debe estar marcada por defecto)
  6. Haz clic en "🔌 Conectar"
  7. Verifica que aparezca el mensaje "Credenciales guardadas correctamente" en el log
  8. CIERRA completamente la aplicación
  9. Vuelve a ejecutar: python3 app.py
  10. Ve a la pestaña "Correos"

Resultado esperado:

  • Los campos de usuario, contraseña y servidores deben estar precargados
  • El archivo .mail_config.json existe en el directorio del proyecto
  • Puedes conectarte sin volver a escribir las credenciales

Para probar el borrado de credenciales:

  1. Conecta al servidor
  2. Desconecta
  3. Desmarca "💾 Recordar credenciales"
  4. Vuelve a conectar
  5. Cierra la aplicación
  6. 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:

  1. Conecta al servidor de correo
  2. Haz clic en "✉️ Nuevo correo"
  3. En el campo "Para:", introduce múltiples correos separados por comas:
    marcos@psp.es, destinatario2@ejemplo.com, destinatario3@ejemplo.com
    
  4. También puedes usar punto y coma:
    marcos@psp.es; destinatario2@ejemplo.com
    
  5. Introduce un asunto: "Prueba múltiples destinatarios"
  6. Escribe un mensaje: "Este es un correo de prueba"
  7. 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:

  1. Intenta enviar a: marcos@psp.es, correo-invalido, otro@ejemplo.com
  2. 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:

  1. Conecta al servidor de correo en la aplicación
  2. Envía un correo de prueba:
    • Para: marcos@psp.es
    • Asunto: "Prueba guardado en servidor"
    • Mensaje: "Verificando que este correo se guarda en IMAP"
  3. Observa el log en la parte inferior de la aplicación
  4. Busca mensajes como:
    Correo guardado en carpeta: Sent
    
  5. Haz clic en el botón "📧 Enviados" en la aplicación
  6. Verifica que el correo aparece en la lista
  7. Ahora abre tu navegador y ve a: http://10.10.0.101:20000
  8. Inicia sesión en Webmin
  9. Ve a "Correo" → "Usermin" → "Read Email" o accede directamente a tu cliente de correo Webmin
  10. 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:
    • Sent
    • INBOX.Sent
    • Enviados
    • INBOX.Enviados
    • Sent 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:

  1. Conecta al servidor
  2. Observa la barra de herramientas (arriba de la lista de correos)
  3. Verifica que solo hay un botón: "✉️ Nuevo correo"
  4. El botón "🔄 Actualizar" ya NO debe existir
  5. Haz clic en "📧 Enviados"
  6. Observa que la lista se actualiza automáticamente
  7. Haz clic en "📬 Entrada"
  8. 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:

  1. Conecta al servidor
  2. Ve a "📬 Entrada"
  3. Observa la lista de correos
  4. 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

  1. Envía un correo a 2-3 destinatarios
  2. Incluye 1-2 archivos adjuntos (imágenes, PDFs)
  3. Verifica que todos los destinatarios reciben los adjuntos

Prueba de Imágenes Pegadas (Ctrl+V)

  1. Copia una imagen del portapapeles
  2. En la ventana de composición, presiona Ctrl+V
  3. Verifica que la imagen se muestra en la vista previa
  4. Envía el correo
  5. Verifica en "Enviados" que el correo tiene el adjunto

Prueba de Longitud de Lista de Destinatarios

  1. Intenta enviar a 10+ destinatarios
  2. Verifica que el diálogo de confirmación muestra todos
  3. Confirma que se envía correctamente

🐛 QUÉ HACER SI ENCUENTRAS ERRORES

Error: "No se puede guardar en carpeta Sent"

Solución:

  1. Revisa el log para ver qué carpetas se intentaron
  2. Conéctate a Webmin y verifica el nombre exacto de tu carpeta de enviados
  3. 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:

  1. Verifica que el archivo .mail_config.json existe
  2. Ejecuta: cat .mail_config.json para ver su contenido
  3. 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.json puede 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:

  1. Campos CC y BCC para copias de correos
  2. Responder y Reenviar correos existentes
  3. Búsqueda de correos por remitente, asunto o contenido
  4. Firma automática al final de cada correo
  5. Plantillas de correo predefinidas
  6. Encriptación real de contraseñas con Fernet
  7. Soporte TLS/SSL para conexiones seguras
  8. Carpetas personalizadas (Borradores, Papelera, etc.)
  9. Exportar correos a PDF o HTML
  10. 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.