156 lines
4.5 KiB
Markdown
156 lines
4.5 KiB
Markdown
# Cliente de Correo Electrónico - Proyecto1AVApsp
|
|
|
|
## Descripción
|
|
|
|
Se ha implementado un cliente de correo electrónico completo en la pestaña "Correos" de la aplicación. Este cliente permite conectarse a tu servidor Webmin para leer y enviar correos electrónicos.
|
|
|
|
## Características
|
|
|
|
- **Conexión IMAP**: Lee correos desde tu servidor (Puerto 143)
|
|
- **Conexión SMTP**: Envía correos nuevos (Puerto 25)
|
|
- **Interfaz tipo Outlook**: Panel dividido con lista de correos y visor
|
|
- **Redacción de correos**: Ventana dedicada para componer nuevos mensajes
|
|
|
|
## Configuración del Servidor Webmin
|
|
|
|
### Datos de conexión predeterminados:
|
|
|
|
- **Servidor IMAP**: `10.10.0.101`
|
|
- **Puerto IMAP**: `143`
|
|
- **Servidor SMTP**: `10.10.0.101`
|
|
- **Puerto SMTP**: `25`
|
|
|
|
### Puertos configurados en Webmin:
|
|
|
|
- SMTP (envío de correo): 25
|
|
- IMAP (consulta de correo): 143
|
|
- POP (descarga de correo): 110 (no usado en esta implementación)
|
|
- Interfaz web Webmin: http://10.10.0.101:20000
|
|
|
|
## Cómo usar el cliente de correo
|
|
|
|
### 1. Ejecutar la aplicación
|
|
|
|
```bash
|
|
python3 app.py
|
|
```
|
|
|
|
### 2. Ir a la pestaña "Correos"
|
|
|
|
La pestaña está ubicada en el panel central de la aplicación.
|
|
|
|
### 3. Configurar la conexión
|
|
|
|
En el panel "Configuración del servidor":
|
|
|
|
- **Servidor IMAP**: Ya está configurado como `10.10.0.101`
|
|
- **Puerto IMAP**: Ya está configurado como `143`
|
|
- **Servidor SMTP**: Ya está configurado como `10.10.0.101`
|
|
- **Puerto SMTP**: Ya está configurado como `25`
|
|
- **Usuario**: Introduce tu nombre de usuario del servidor de correo
|
|
- **Contraseña**: Introduce tu contraseña
|
|
|
|
### 4. Conectar al servidor
|
|
|
|
Haz clic en el botón **"Conectar"**. Si la conexión es exitosa:
|
|
- El estado cambiará a "Conectado" en verde
|
|
- Se cargarán automáticamente los correos de la bandeja de entrada
|
|
|
|
### 5. Leer correos
|
|
|
|
- Los correos aparecen en la lista de la izquierda
|
|
- Haz clic en un correo para ver su contenido completo
|
|
- Se muestran:
|
|
- Remitente (De)
|
|
- Asunto
|
|
- Fecha
|
|
- Cuerpo del mensaje
|
|
|
|
### 6. Actualizar la lista de correos
|
|
|
|
Haz clic en el botón **"Actualizar"** para recargar la lista de correos desde el servidor.
|
|
|
|
### 7. Enviar un nuevo correo
|
|
|
|
1. Haz clic en el botón **"Nuevo correo"**
|
|
2. Se abrirá una ventana de composición
|
|
3. Completa los campos:
|
|
- **Para**: Dirección del destinatario
|
|
- **Asunto**: Título del correo
|
|
- **Mensaje**: Contenido del correo
|
|
4. Haz clic en **"Enviar"**
|
|
|
|
### 8. Desconectar
|
|
|
|
Cuando termines, haz clic en **"Desconectar"** para cerrar la conexión con el servidor.
|
|
|
|
## Notas técnicas
|
|
|
|
### Bibliotecas utilizadas
|
|
|
|
El cliente utiliza las bibliotecas estándar de Python:
|
|
- `imaplib`: Para leer correos (protocolo IMAP)
|
|
- `smtplib`: Para enviar correos (protocolo SMTP)
|
|
- `email`: Para parsear y crear mensajes de correo
|
|
|
|
### Limitaciones actuales
|
|
|
|
1. **Seguridad**:
|
|
- La conexión IMAP es sin cifrado (puerto 143 en lugar de 993 IMAPS)
|
|
- La conexión SMTP es sin cifrado (puerto 25 en lugar de 465/587 SMTPS)
|
|
- Para producción, se recomienda usar conexiones cifradas
|
|
|
|
2. **Funcionalidades**:
|
|
- Solo se muestran los últimos 50 correos
|
|
- No hay soporte para adjuntos aún
|
|
- Solo se muestra la bandeja de entrada (INBOX)
|
|
- Los correos HTML se muestran como texto crudo
|
|
|
|
3. **Autenticación SMTP**:
|
|
- El código actual no utiliza autenticación para SMTP
|
|
- Si tu servidor Webmin requiere autenticación, necesitarás descomentar estas líneas en el código:
|
|
```python
|
|
# server.starttls()
|
|
# server.login(username, password)
|
|
```
|
|
|
|
## Solución de problemas
|
|
|
|
### Error: "No se pudo conectar al servidor"
|
|
|
|
1. Verifica que el servidor Webmin esté en ejecución
|
|
2. Comprueba que puedes hacer ping a `10.10.0.101`
|
|
3. Verifica que los puertos 143 y 25 estén abiertos:
|
|
```bash
|
|
telnet 10.10.0.101 143
|
|
telnet 10.10.0.101 25
|
|
```
|
|
|
|
### Error: "Login failed"
|
|
|
|
- Verifica que el usuario y contraseña sean correctos
|
|
- Comprueba que la cuenta de correo esté configurada en Webmin
|
|
|
|
### No se cargan los correos
|
|
|
|
- Haz clic en "Actualizar" para recargar
|
|
- Verifica la configuración de la bandeja INBOX en el servidor
|
|
- Revisa el panel de notas para ver mensajes de error
|
|
|
|
## Mejoras futuras
|
|
|
|
- [ ] Soporte para conexiones cifradas (IMAPS/SMTPS)
|
|
- [ ] Gestión de adjuntos
|
|
- [ ] Múltiples carpetas/bandejas
|
|
- [ ] Búsqueda de correos
|
|
- [ ] Marcado como leído/no leído
|
|
- [ ] Eliminación de correos
|
|
- [ ] Responder y reenviar correos
|
|
- [ ] Vista HTML mejorada
|
|
- [ ] Configuración persistente
|
|
|
|
## Contacto
|
|
|
|
Para más información sobre la configuración del servidor Webmin, consulta:
|
|
- Interfaz web Webmin: http://10.10.0.101:20000
|