287 lines
9.8 KiB
Markdown
287 lines
9.8 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
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.
|