RFC 1939: POP3 — Protocolo de Oficina Postal Versión 3
Por qué existe
En los primeros días de internet, la mayoría de usuarios no estaban conectados permanentemente. Las conexiones de acceso telefónico eran lentas y caras. La arquitectura del correo electrónico se dividió en dos roles:
- MTA (Mail Transfer Agent): Un servidor siempre activo que recibe y pone en cola correos a través de SMTP.
- MUA (Mail User Agent): Una aplicación cliente que se conecta periódicamente para recuperar el correo acumulado.
POP3 cubre esa brecha. Proporciona una forma simple y sin estado para que un cliente se autentique, enumere mensajes, los descargue y opcionalmente los elimine del servidor. Fue diseñado para ser implementable en código mínimo en máquinas con pocos recursos, y lo logró. POP3 sigue siendo uno de los protocolos de acceso a correo más ampliamente soportados del planeta.
Cómo funciona
Conexión y estados
Una sesión de POP3 pasa por tres estados secuenciales:
- AUTHORIZATION: El cliente se conecta (puerto 110, o puerto 995 para TLS implícito) y se autentica con un nombre de usuario y contraseña.
- TRANSACTION: El cliente emite comandos para enumerar, recuperar y marcar mensajes para eliminación.
-
UPDATE: El cliente envía
QUIT. El servidor realiza todas las eliminaciones pendientes y cierra la conexión.
Una sesión típica de POP3
-- Cliente se conecta al puerto 995 (POP3S) -- +OK Servidor POP3 listo USER alice@example.com +OK PASS s3cretP@ss +OK Sesión iniciada. -- Ahora en estado TRANSACTION -- STAT +OK 3 12400 ← 3 mensajes, 12400 octetos totales LIST +OK 3 mensajes 1 4200 2 3800 3 4400 . RETR 1 ← descargar mensaje 1 +OK 4200 octetos (contenido completo del mensaje RFC 5322...) . DELE 1 ← marcar mensaje 1 para eliminación +OK Eliminado. QUIT +OK Adiós. ← servidor elimina mensaje 1 ahora
Comandos principales de POP3
| Comando | Estado | Propósito |
|---|---|---|
USER / PASS
|
AUTH | Autenticarse con nombre de usuario y contraseña |
APOP |
AUTH | Autenticación de respuesta a desafío (evita enviar contraseña en texto plano) |
STAT |
TRANSACTION | Obtener recuento de mensajes y tamaño total |
LIST |
TRANSACTION | Enumerar números y tamaños de mensajes |
RETR |
TRANSACTION | Recuperar un mensaje completo por número |
DELE |
TRANSACTION | Marcar un mensaje para eliminación |
NOOP |
TRANSACTION | Mantener la sesión activa |
RSET |
TRANSACTION | Desmarcar todos los mensajes marcados para eliminación |
TOP |
TRANSACTION | Recuperar encabezados más n líneas del cuerpo |
UIDL |
TRANSACTION | Obtener listado de ID único (se usa para rastrear mensajes ya descargados) |
QUIT |
Cualquiera | Finalizar la sesión; activar estado UPDATE |
Detalles técnicos clave
Descargar y eliminar vs. Mantener en servidor
El modelo predeterminado de POP3 es descargar y eliminar: el cliente recupera cada mensaje con RETR, luego lo marca con DELE, y el servidor lo elimina en QUIT. Muchos clientes ofrecen una opción "dejar mensajes en servidor", que simplemente omite el paso DELE. El comando UIDL proporciona IDs únicos para que el cliente pueda rastrear qué mensajes ya ha descargado sin descargarlos de nuevo.
Bloqueo
POP3 requiere un bloqueo exclusivo en el buzón. Solo un cliente puede acceder a un buzón POP3 a la vez. Si un segundo cliente intenta conectarse mientras el primero está en estado TRANSACTION, será rechazado. Esto hace que POP3 no sea adecuado para acceso multi-dispositivo.
Sin carpetas, sin banderas, sin búsqueda
POP3 ve un buzón como una lista plana de mensajes numerados. No existe el concepto de carpetas, etiquetas, banderas leído/no leído o búsqueda del lado del servidor. El servidor es puramente un almacén de mensajes; toda la organización ocurre en el cliente. Esta es la diferencia fundamental entre POP3 e IMAP.
Seguridad: APOP y TLS
La autenticación original USER/PASS envía la contraseña en texto plano. APOP utiliza un desafío MD5 de secreto compartido para evitar esto, pero MD5 ahora se considera criptográficamente comprometido. El POP3 moderno siempre debe ejecutarse sobre TLS implícito en el puerto 995 (según RFC 8314) o, como alternativa, utilizar STLS (el equivalente de POP3 de STARTTLS).
Errores comunes
- Usar POP3 con múltiples dispositivos. Porque POP3 descarga y elimina, un teléfono y una laptop competirán por los mensajes. Solo un dispositivo ve cada mensaje. Usa IMAP o JMAP en su lugar.
- Ejecutar POP3 en el puerto 110 sin TLS. Las credenciales y el contenido del mensaje se transmiten por la red en texto plano. Siempre usa el puerto 995 con TLS implícito.
- Confiar en APOP para la seguridad. APOP utiliza MD5, que es vulnerable a ataques de colisión y preimagen. TLS es la única protección confiable.
- No usar UIDL en modo "dejar en servidor". Sin UIDL, un cliente en modo "dejar en servidor" no tiene una forma confiable de saber qué mensajes ya descargó, lo que genera duplicados después de la reconexión.
-
Desconectar sin QUIT. Si el cliente suelta la conexión sin enviar
QUIT, el servidor no entra en el estado UPDATE. Los comandosDELEpendientes se descartan; los mensajes que se pensaba que estaban eliminados reaparecerán. - Esperar características del lado del servidor. POP3 no tiene búsqueda, sin banderas, sin carpetas. Si tu aplicación necesita cualquiera de estas, POP3 es el protocolo incorrecto.
Impacto en entregabilidad
- POP3 es un protocolo de recuperación, no de envío. No tiene impacto directo en si tu correo saliente llega a las bandejas de entrada. Sin embargo, afecta cómo los destinatarios interactúan con el correo que les envías.
- Confirmaciones de lectura y seguimiento. Los clientes POP3 descargan mensajes para lectura sin conexión. Los píxeles de seguimiento abierto pueden no activarse hasta que el usuario abra el mensaje en su cliente local, si cargan imágenes remotas en absoluto.
-
Procesamiento de devoluciones. Si usas POP3 para sondear un buzón de devoluciones, usa
UIDLpara evitar reprocesar devoluciones. Asegúrate de que tu intervalo de sondeo sea lo suficientemente frecuente para procesar devoluciones con prontitud para la higiene de la lista. - Colocación en bandeja de entrada. Los destinatarios que usan clientes POP3 reciben todos los mensajes en una bandeja de entrada plana sin filtrado de spam del lado del servidor (a menos que el servidor filtre antes del acceso POP3). Esto puede significar una mayor visibilidad de tus mensajes, o más quejas si los destinatarios se sienten abrumados.