Sign-up for mailcow — guía

Antes de empezar

  • El paquete mailcow Toolkit 0.4.0 o posterior, instalado con install.sh como se describe en la guía de mailcow Toolkit. Sign-up for mailcow forma parte del paquete: no hay nada más que descargar.
  • Tu clave de licencia de Sign-up for mailcow, desde tu cuenta de medialab.works (también vale una clave del paquete para mailcow), o una dirección de correo para la prueba gratuita de 30 días.
  • HTTPS saliente hacia medialab.works desde el servidor (comprobación de la licencia) y un mailcow que envíe correo (correos de confirmación, aprobación y bienvenida).
  • Al menos un dominio de mailcow abierto al registro, si los visitantes deben obtener buzones.

Instalación y actualizaciones

El install.sh del paquete (0.4.0 o posterior) instala Sign-up junto al Toolkit: los archivos web en data/web/mlw-signup de mailcow, la carpeta de ajustes, las tablas mlw_su_* en la base de datos de mailcow y el temporizador mlw-mailcow-accounts-<name>.timer, que ejecuta los trabajos de Sign-up y Cashier cada 5 minutos. Un Toolkit ya instalado recibe todo esto al actualizarlo a 0.4.0 desde System > Updates (Toolkit) o al ejecutar el nuevo install.sh. Sign-up se queda desactivado hasta que tiene licencia y tú abres los registros.

Sign-up se actualiza junto con el Toolkit: un paquete, una actualización. La actualización puede iniciarse desde la tarjeta License de cualquier producto con una licencia válida.

Licencia y prueba gratuita

Abre System > Updates (Toolkit) (solo administradores). Desde la 0.4.0, la página muestra una tarjeta License por producto; usa la tarjeta License · Sign-up for mailcow:

  • Introduce tu clave de licencia y pulsa Activate, o empieza la prueba gratuita de 30 días con tu dirección de correo: la tarjeta se pide en la página de pago de Stripe y no se cobra durante los 30 días, y la tarjeta activa Sign-up por sí misma en cuanto empieza la prueba. Cada herramienta para mailcow tiene su propia prueba, una vez por servidor y por dirección de correo.
  • Con una clave del paquete para mailcow, introduce la misma clave en la tarjeta License de cada producto.
  • En la consola: docker compose exec -u www-data php-fpm-mailcow php /web/mlw-toolkit/cli.php activate mailcow-signup <KEY> desde la carpeta de mailcow.

La licencia se comprueba cuando el servidor arranca y una vez al día; sin internet, Sign-up sigue funcionando 7 días después de la última comprobación exitosa. Sin una licencia válida los registros se cierran (la página pública indica que el registro no está disponible) y los trabajos en segundo plano se detienen para Sign-up; las cuentas, buzones y dominios existentes nunca se tocan.

Apertura de los registros

Abre System > Sign-up. La tarjeta Registration contiene las opciones principales; guarda el formulario con el botón de su final.

  • Registrations open: activa la página pública /mlw-signup/. La página de inicio de sesión de mailcow muestra entonces el enlace Create an account (en la interfaz y en el nombre de host del webmail).
  • A mailbox on one of your domains: márcala y elige los Domains open for registration. Define Min. characters y Max. characters para el nombre delante de la @, la Free quota (MB), More reserved names (los nombres de función como postmaster, abuse, admin, support y noreply siempre están reservados) y la mailcow mailbox template (vacía = la predeterminada de mailcow).
  • A domain administrator for the customer's own domains: el cliente añade dominios tras una comprobación DNS (TXT), dentro de los límites del paquete. El Free package define Domains, Mailboxes/domain, Aliases/domain, Quota/domain (MB) y Default quota/mailbox (MB); la mailcow domain template se usa para los dominios nuevos de los clientes. Con la opción del asistente de dominio nuevo, el asistente del Toolkit crea las direcciones de función de un dominio del cliente hacia el correo del cliente.
  • Free registration (next to Cashier's paid plans): déjala marcada para cuentas gratuitas; desmárcala cuando cada cuenta deba comprar un plan con Cashier for mailcow.

Confirmación, aprobación e invitaciones

En la tarjeta Confirmation, approval, invitations:

  • Address confirmation: código de 6 dígitos, enlace, código y enlace, o ninguno (no recomendado). Expires (hours): de 1 a 168. Un visitante puede pedir un correo nuevo después de un minuto, como máximo 5 veces al día, y tiene 5 intentos por código.
  • Administrator approval: los registros gratuitos esperan a un administrador; define E-mail for registrations to approve para que se te avise de cada uno nuevo. Los registros de pago nunca se retienen para aprobación.
  • Invitation code: desactivado, opcional u obligatorio.
  • Terms link (asks for acceptance): un enlace a tus condiciones; el visitante debe aceptarlas.
  • Form fields: nombre, empresa, teléfono y país: desactivado, opcional u obligatorio.

Aprobación de los registros

La tarjeta Registrations enumera los que están Waiting for approval. Approve crea la cuenta y envía el correo de bienvenida; Reject (con un Reason opcional) envía al visitante un correo con la decisión. Recent muestra los últimos registros y su estado.

Códigos de invitación

En Invitation codes rellena Code (empty = random), Uses (0 = unlimited), Expires, el Account kind (buzón, dominio o cualquiera) y, con Cashier, el Plan que abre el código (incluido uno oculto), marca No approval si el código debe saltarse la aprobación, añade una Note y pulsa Create the code. La lista muestra cuántas veces se usó cada código; Disable y Enable lo desactivan y activan.

Antiabuso

En la tarjeta Anti-abuse:

  • Minimum time to fill in (s): un formulario enviado más rápido se rechaza (bots). Un campo oculto caza por sí solo a los bots más simples.
  • Registrations / IP / day (0 = no limit).
  • Block disposable addresses: la lista integrada más la MediaLab Works list, que llega con la comprobación de la licencia mientras la licencia es válida.
  • Only these e-mail domains (empty = any) y Blocked e-mail domains: separados por espacios, comas o saltos de línea. Un dominio cubre también sus subdominios; *.example.com significa solo los subdominios.
  • La contraseña debe seguir la propia política de contraseñas de mailcow, la definida en la interfaz de administración de mailcow.

Cuentas nuevas

En la tarjeta New accounts: Own text in the welcome e-mail (inglés y rumano), el Sender name of the e-mails (vacío = el nombre de host del correo) y Sign in the browser that registered (activado por defecto).

Un buzón gratuito se crea en cuanto la dirección se confirma (y se aprueba). Un administrador de dominio se crea con el primer dominio verificado: hasta entonces, el cliente tiene una página, My account, donde el paso siguiente es añadir el dominio.

Los dominios propios del cliente

El cliente abre My account (/mlw-signup/account.php, también en el menú de mailcow con la sesión iniciada) y añade un dominio. La página muestra un registro TXT que publicar en el proveedor DNS del cliente:

_mlw-verify.example.com.  TXT  "mlw-verify=<token>"

Verify lo comprueba al instante; Sign-up también lo comprueba cada 10 minutos durante 7 días. Cuando se encuentra el registro, el dominio se añade a mailcow con los límites del paquete, y la página muestra los registros DNS del dominio (obligatorios y recomendados) que el cliente debe definir: MX, SPF, DKIM, DMARC, autodiscover y los demás, calculados por el módulo DNS del Toolkit. Un administrador puede comprobar un dominio desde la consola, en la carpeta de mailcow: docker compose exec -u www-data php-fpm-mailcow php /web/mlw-signup/cli.php verify example.com.

Los dominios de los clientes quedan fuera de tu configuración automática de Cloudflare (el cliente gestiona su propio DNS).

Datos, copias de seguridad y desinstalación

  • Los registros, los clientes y los códigos de invitación están en la base de datos de mailcow (tablas mlw_su_*), así que están en las copias de seguridad de mailcow. Los ajustes están en la carpeta compartida del Toolkit.
  • El temporizador mlw-mailcow-accounts-<name>.timer se ejecuta cada 5 minutos: elimina los registros caducados y comprueba los dominios de clientes pendientes.
  • uninstall.sh quita Sign-up junto con el Toolkit, pero conserva las tablas y cada buzón, dominio y administrador de dominio creados a través de él.

Problemas frecuentes

La página de inicio de sesión no muestra el enlace «Create an account». Los registros están cerrados, la licencia no es válida o no se ofrece ningún tipo de cuenta (ningún dominio abierto para buzones y ningún administrador de dominio). Comprueba la tarjeta License y System > Sign-up.

La página pública indica que el registro no está disponible. Los mismos motivos: la licencia (ver el mensaje de la tarjeta License) o Registrations open.

Los visitantes no reciben el correo de confirmación. Comprueba que mailcow entrega el correo saliente (los correos se envían a través de mailcow) y la carpeta de spam. Tras 5 correos en un día, la dirección debe esperar al día siguiente.

Un dominio de cliente se queda en «Waiting for verification». Falta el registro TXT, tiene otro valor o aún no se ha propagado. Compruébalo con dig TXT _mlw-verify.example.com. Tras 7 días, las comprobaciones automáticas se detienen; Verify sigue funcionando.

Se rechazó un dominio. Ya está en este servidor, otra cuenta lo está añadiendo, o el paquete del cliente no tiene dominios libres (un plan mayor con Cashier permite más).

Para descargar necesitas una licencia o la prueba gratuita de 30 días.