Buzones IMAP
Qué abarca IMAP
Cualquier buzón que hable IMAP y SMTP puede conectarse con una contraseña. Eso incluye Yahoo, AOL, iCloud, Fastmail, GMX, WEB.DE, Yandex y un dominio propio en una empresa de alojamiento. Gmail y Zoho Mail siguen conectándose con su propio inicio de sesión (consulta Buzones), y Outlook o Microsoft 365 están en camino.
Campbooks lee el correo, hace en el servidor los cambios de los miembros (leído, destacado, archivar, papelera, spam y flujos) y envía por el servidor SMTP del propio buzón. Una copia de cada mensaje enviado va a la carpeta Enviados del buzón.
Activarlo
IMAP viene activado por defecto. Solo necesita la clave secreta de la instancia, que sella la contraseña de cada buzón. Consulta La clave secreta de la instancia.
-
Con la clave definida, Ajustes, luego Buzones, luego Añadir un buzón ofrece IMAP para cualquier dirección que no sea de Gmail, Zoho ni Outlook.
-
Sin la clave, el servidor arranca igualmente. Registra un aviso y no ofrece IMAP.
-
Para desactivar IMAP, define esto en
.envy ejecutadocker compose up -d:CAMPBOOKS_CONNECTORS__IMAP__ENABLED=falseDefinirlo como
truede forma explícita mientras falta la clave detiene el servidor, con un error que nombra la clave.
No hay ningún cliente que registrar ni nada que configurar en el proveedor. Cada miembro crea una contraseña de aplicación en su proveedor; consulta Conecta tu buzón para los pasos de cada proveedor.
Cómo conecta uno un miembro
- En Ajustes, luego Buzones, el miembro elige Añadir un buzón (o pulsa
ShiftC) y escribe la dirección. - Campbooks averigua cómo se conecta ese buzón:
- Las direcciones de Gmail y Zoho pasan al inicio de sesión del propio proveedor, sin contraseña.
- Las direcciones de Outlook y Microsoft 365 reciben una nota que dice que llegarán pronto.
- Cualquier otra dirección recibe el paso de la contraseña de aplicación. Los proveedores conocidos muestran sus propios pasos y un enlace a su página de ayuda.
- El miembro pega la contraseña de aplicación y elige Conectar. Antes de guardar nada, Campbooks inicia sesión en el servidor IMAP y se autentica en el servidor SMTP.
- Una sección Avanzado muestra el nombre de usuario y los dos servidores. Está cerrada y rellenada cuando se encontraron los servidores, y abierta cuando no.
Cómo se encuentran los servidores
Campbooks mira en estos sitios, por orden:
- Una copia de la base de datos de proveedores de Thunderbird, incluida en Campbooks.
- El propio documento de autoconfiguración del dominio.
- Los registros SRV del dominio.
- Su host MX.
La dirección nunca se envía a terceros para buscarla.
Solo con cifrado
Campbooks se conecta solo por TLS o STARTTLS, y comprueba el certificado frente al nombre del servidor. No hay opción de texto plano. Un servidor que no ofrezca ninguno de los dos se rechaza antes de enviar la contraseña.
La contraseña
La contraseña de un buzón vale más que una autorización OAuth. No tiene ámbito, y Campbooks no puede revocarla en el proveedor. Campbooks la trata así:
- Se guarda cifrada con la clave secreta de la instancia y ligada a su conexión.
- Nunca se vuelve a mostrar y nunca se registra en los logs.
- Se borra cuando se desconecta el buzón.
Pide a los miembros que usen contraseñas de aplicación. Pueden revocar una contraseña de aplicación en su proveedor sin cambiar su contraseña principal.
La verificación de la dirección
Un buzón cuyo nombre de usuario difiere de su dirección no puede enviar hasta que se verifica la dirección. Cuando el nombre de usuario es la propia dirección, el inicio de sesión ya lo demuestra.
- Campbooks envía un mensaje en texto plano, de la dirección a la dirección, por el servidor SMTP del propio buzón. Su
Message-IDlleva un código de un solo uso. - En 15 minutos, una sincronización del buzón encuentra ese mensaje en su bandeja de entrada.
- La dirección se marca entonces como verificada, y el mensaje se elimina por su UID. Donde el servidor no puede hacerlo con seguridad, se mueve a la Papelera o se deja donde está.
El miembro no escribe nada. Ajustes, luego Buzones, muestra «Verificando tu dirección…» y luego Verificada. Si el mensaje no se encuentra a tiempo, el buzón lee el correo pero el envío sigue desactivado, y la fila ofrece Volver a intentarlo. Un buzón tiene como máximo 5 comprobaciones al día.
La comprobación tiene un límite. El miembro tiene la contraseña del buzón. Cualquiera que pueda ver el código (porque gestiona el servidor, o porque el servidor archiva el correo enviado donde puede leerlo) puede superar la comprobación. Impide que, en un servidor compartido que deja a cualquier inicio de sesión enviar como cualquier dirección, la dirección de otra persona pase a ser enviable a través de Campbooks. No frena al operador del servidor de correo.
Reglas de red
Por defecto, a los servidores de correo solo se llega en direcciones públicas y solo por los puertos 993, 143, 465 y 587. Si tu servidor de correo está en tu propia red, o usa otros puertos, define:
CAMPBOOKS_CONNECTORS__IMAP__ALLOW_PRIVATE_HOSTS=true
CAMPBOOKS_CONNECTORS__IMAP__ALLOW_ANY_PORT=true
ALLOW_PRIVATE_HOSTS permite direcciones privadas, de loopback y CGNAT. Las direcciones link-local y de metadatos de la nube nunca se permiten. Deja ambas desactivadas en una instancia compartida con personas que no conoces.
Los intentos de conexión están limitados a 10 por miembro y 30 por espacio de trabajo a la hora. El inicio de sesión en un buzón está limitado a 5 inicios de sesión fallidos por hora en toda la instancia, para que la pantalla no pueda usarse para adivinar contraseñas.
Cómo sincroniza
Campbooks consulta los buzones IMAP con el mismo calendario que los demás:
- En el plazo de un minuto tras una sincronización que encontró cambios.
- Retrocediendo hasta
CAMPBOOKS_CONNECTORS__POLL__MAX_SECONDSmientras el buzón está tranquilo.
Lee todas las carpetas (hasta 200) y, cada 6 horas, repasa los indicadores de la ventana de cada buzón. Un buzón nuevo lee los últimos 90 días.
Un flujo sin carpeta propia recibe una carpeta Campbooks/<Stream>, hasta 10 por buzón. Campbooks nunca borra ni renombra una carpeta, y nunca vacía ninguna.
Push con IDLE (opcional)
IDLE deja que el servidor avise a Campbooks del correo nuevo al instante, en lugar de esperar a la siguiente consulta. Viene desactivado por defecto. Para activarlo:
CAMPBOOKS_CONNECTORS__IMAP__IDLE_ENABLED=true
Mientras IDLE retiene un buzón, Campbooks lo sigue consultando como red de seguridad cada CAMPBOOKS_CONNECTORS__IMAP__IDLE_POLL_SECONDS (900 por defecto). Ese valor debe estar entre CAMPBOOKS_CONNECTORS__POLL__MIN_SECONDS y CAMPBOOKS_CONNECTORS__POLL__MAX_SECONDS; si no, el servidor se niega a arrancar con IDLE activado. Si bajaste POLL__MAX_SECONDS, baja también IDLE_POLL_SECONDS.
Ajuste fino
Todos estos ajustes son opcionales. Añádelos a .env y ejecuta docker compose up -d.
| Variable | Valor por defecto | Qué hace |
|---|---|---|
CAMPBOOKS_CONNECTORS__IMAP__ENABLED | true | Ofrece buzones IMAP. Necesita la clave secreta de la instancia. |
CAMPBOOKS_CONNECTORS__IMAP__ALLOW_PRIVATE_HOSTS | false | Permite servidores de correo en direcciones privadas, de loopback y CGNAT. |
CAMPBOOKS_CONNECTORS__IMAP__ALLOW_ANY_PORT | false | Permite puertos distintos de 993, 143, 465 y 587. |
CAMPBOOKS_CONNECTORS__IMAP__CONNECT_TIMEOUT_SECONDS | 10 | Tiempo para abrir una conexión con un servidor de correo. |
CAMPBOOKS_CONNECTORS__IMAP__TIMEOUT_SECONDS | 30 | Tiempo total que puede tardar una comprobación de conexión; al leer un buzón, cuánto puede esperar un comando. |
CAMPBOOKS_CONNECTORS__IMAP__BACKFILL_DAYS | 90 | Cuánto hacia atrás lee un buzón nuevo, en días. |
CAMPBOOKS_CONNECTORS__IMAP__MAX_MESSAGE_BYTES | 52428800 (50 MiB) | Los mensajes más grandes se omiten y se registran como demasiado grandes. |
CAMPBOOKS_CONNECTORS__IMAP__RUN_BUDGET_BYTES | 67108864 (64 MiB) | Una ejecución de sincronización no inicia ninguna descarga tras este número de bytes y continúa en la siguiente ejecución. |
CAMPBOOKS_CONNECTORS__IMAP__SWEEP_MINUTES | 360 | Minutos entre repasos de los indicadores de un buzón. |
CAMPBOOKS_CONNECTORS__IMAP__SESSIONS_PER_HOST | 4 | Sesiones IMAP abiertas a la vez con un servidor, entre todos los procesos. |
CAMPBOOKS_CONNECTORS__IMAP__PROVIDER_SESSIONS_PER_HOST | 200 | Lo mismo, para el servidor de un gran proveedor (una lista corta mantenida en el código). |
CAMPBOOKS_CONNECTORS__IMAP__WORKSPACE_SESSIONS_PER_HOST | 2 | Sesiones que un espacio de trabajo puede mantener en un servidor. |
CAMPBOOKS_CONNECTORS__IMAP__MAX_FOLDERS | 200 | El máximo de carpetas leídas por buzón. |
CAMPBOOKS_CONNECTORS__IMAP__MAX_CREATED_FOLDERS | 10 | El máximo de carpetas Campbooks/<Stream> creadas por buzón. |
CAMPBOOKS_CONNECTORS__IMAP__SEND_PER_HOUR | 50 | Mensajes que envía a la hora el inicio de sesión de un buzón. |
CAMPBOOKS_CONNECTORS__IMAP__SEND_RECIPIENTS_PER_MESSAGE | 50 | Destinatarios que puede tener un mensaje. |
CAMPBOOKS_CONNECTORS__IMAP__SEND_RECIPIENTS_PER_DAY | 500 | Destinatarios a los que envía al día el inicio de sesión de un buzón. |
CAMPBOOKS_CONNECTORS__IMAP__SEND_WORKSPACE_PER_HOUR | 200 | Mensajes que envía a la hora un espacio de trabajo. |
CAMPBOOKS_CONNECTORS__IMAP__SEND_HOST_PER_HOUR | 1000 | Mensajes enviados a la hora a través de un servidor SMTP, entre todos los espacios de trabajo. Los grandes proveedores no tienen tope; en los demás, un espacio de trabajo usa como máximo la mitad. |
CAMPBOOKS_CONNECTORS__IMAP__SEND_MAX_MESSAGE_BYTES | 26214400 (25 MiB) | El mensaje más grande que se envía. Como máximo 35 MiB. |
CAMPBOOKS_CONNECTORS__IMAP__SEND_TIMEOUT_SECONDS | 300 | Cuánto puede tardar un envío. Como máximo 600. |
CAMPBOOKS_CONNECTORS__IMAP__IDLE_ENABLED | false | Push con IDLE. |
CAMPBOOKS_CONNECTORS__IMAP__IDLE_SESSIONS | 50 | Buzones que cada worker mantiene en IDLE. |
CAMPBOOKS_CONNECTORS__IMAP__IDLE_SESSIONS_PER_WORKSPACE | 5 | De esos, el máximo para un espacio de trabajo. |
CAMPBOOKS_CONNECTORS__IMAP__IDLE_DEBOUNCE_SECONDS | 30 | Como máximo una sincronización por buzón en este tiempo cuando IDLE avisa de cambios. |
CAMPBOOKS_CONNECTORS__IMAP__IDLE_REFRESH_MINUTES | 25 | Cada cuánto se renueva IDLE. Como máximo 29. |
CAMPBOOKS_CONNECTORS__IMAP__IDLE_QUIET_DAYS | 14 | Un buzón tranquilo durante este tiempo vuelve a la consulta periódica. |
CAMPBOOKS_CONNECTORS__IMAP__IDLE_POLL_SECONDS | 900 | La consulta de seguridad de un buzón mantenido en IDLE. |
CAMPBOOKS_CONNECTORS__IMAP__WORKSPACE_IDLE_SESSIONS_PER_HOST | 10 | Sesiones IDLE que un espacio de trabajo puede mantener en un servidor. |
Solución de problemas
| Lo que ve el miembro | Causa y solución |
|---|---|
| «El servidor de correo ha rechazado el inicio de sesión» | Contraseña incorrecta, o el proveedor necesita una contraseña de aplicación y se usó la habitual. Crea una contraseña de aplicación y pégala. En Yandex, una contraseña de aplicación nueva puede tardar unas horas en funcionar. |
| «Campbooks no ha encontrado los servidores de este buzón» | El dominio no publica ajustes. Escribe los servidores en Avanzado: las páginas de ayuda del servicio de alojamiento los indican. |
| «Campbooks no ha podido contactar con el servidor de correo» | El nombre o el puerto son incorrectos, o un cortafuegos bloquea el servidor. Revisa los servidores en Avanzado. |
| «Campbooks no puede contactar con ese servidor: está en una red privada…» | El servidor está en una dirección privada, o usa un puerto distinto de 993, 143, 465 o 587. En tu propia instancia, define ALLOW_PRIVATE_HOSTS o ALLOW_ANY_PORT (consulta Reglas de red). |
| «El certificado del servidor de correo no es válido para su nombre» | El nombre del servidor no coincide con su certificado. Usa el nombre que figura en el certificado, a menudo el nombre del servidor de la empresa de alojamiento y no mail. más tu dominio. |
| «Ese servidor no ofrece una conexión cifrada» | Usa el puerto 993 para IMAP y el 465 para SMTP, con TLS. |
| «Demasiados inicios de sesión fallidos en este buzón» | Cinco inicios de sesión fallidos en una hora. Espera una hora. |
| «No hemos podido verificar esta dirección: el envío sigue desactivado» | El mensaje de comprobación no llegó a la bandeja de entrada en 15 minutos. Puede haber ido a Spam. Elige Volver a intentarlo, que envía uno nuevo; si vuelve a fallar, revisa el filtro de spam del buzón. |
| GMX o WEB.DE rechaza el inicio de sesión | El acceso IMAP está desactivado en los ajustes del buzón. Actívalo (POP3 e IMAP) y conecta de nuevo. Ambos proveedores lo vuelven a desactivar tras largos periodos sin uso. |
| IMAP no se ofrece en absoluto | La clave secreta de la instancia no está definida, o CAMPBOOKS_CONNECTORS__IMAP__ENABLED=false. Revisa el aviso en docker compose logs server. |