Sign-up for mailcow — guide
Avant de commencer
- Le paquet mailcow Toolkit 0.4.0 ou plus récent, installé avec
install.shcomme décrit dans le guide du mailcow Toolkit. Sign-up for mailcow fait partie du paquet : il n’y a rien d’autre à télécharger. - Votre clé de licence de Sign-up for mailcow, depuis votre compte medialab.works (une clé du pack mailcow fonctionne aussi), ou une adresse e-mail pour l’essai gratuit de 30 jours.
- Du HTTPS sortant vers medialab.works depuis le serveur (vérification de licence) et un mailcow qui envoie des e-mails (confirmations, approbations et e-mails de bienvenue).
- Au moins un domaine mailcow ouvert à l’inscription, si les visiteurs doivent recevoir des boîtes aux lettres.
Installation et mises à jour
install.sh du paquet (0.4.0 ou plus récent) installe Sign-up à côté du Toolkit : les fichiers web dans data/web/mlw-signup de mailcow, le dossier de réglages, les tables mlw_su_* dans la base de données de mailcow et le timer mlw-mailcow-accounts-<name>.timer, qui exécute les tâches de Sign-up et de Cashier toutes les 5 minutes. Un Toolkit déjà installé reçoit tout cela quand vous le mettez à jour vers 0.4.0 depuis System > Updates (Toolkit) ou en exécutant le nouveau install.sh. Sign-up reste désactivé tant qu’il n’a pas de licence et que vous n’avez pas ouvert les inscriptions.
Sign-up se met à jour avec le Toolkit : un paquet, une mise à jour. La mise à jour peut être lancée depuis la carte License de n’importe quel produit avec une licence valide.
Licence et essai gratuit
Ouvrez System > Updates (Toolkit) (administrateurs uniquement). Depuis 0.4.0, la page affiche une carte License par produit ; utilisez la carte License · Sign-up for mailcow :
- Saisissez votre clé de licence et appuyez sur Activate, ou lancez l’essai gratuit de 30 jours avec votre adresse e-mail : la carte est demandée sur la page de paiement Stripe et n’est pas débitée pendant les 30 jours, et elle active Sign-up dès le début de l’essai. Chaque outil mailcow a son propre essai, une fois par serveur et par adresse e-mail.
- Avec une clé du pack mailcow, saisissez la même clé dans la carte License de chaque produit.
- En shell :
docker compose exec -u www-data php-fpm-mailcow php /web/mlw-toolkit/cli.php activate mailcow-signup <KEY>depuis le dossier mailcow.
La licence est vérifiée au démarrage du serveur puis une fois par jour ; sans Internet, Sign-up continue de fonctionner 7 jours après la dernière vérification réussie. Sans licence valide, les inscriptions se ferment (la page publique indique que l’inscription n’est pas disponible) et les tâches d’arrière-plan de Sign-up s’arrêtent ; les comptes, boîtes aux lettres et domaines existants ne sont jamais touchés.
Ouverture des inscriptions
Ouvrez System > Sign-up. La carte Registration contient les choix principaux ; enregistrez le formulaire avec le bouton à sa fin.
- Registrations open : active la page publique
/mlw-signup/. La page de connexion de mailcow affiche alors le lien Create an account (sur l’interface et sur le nom d’hôte webmail). - A mailbox on one of your domains : cochez-le et choisissez les Domains open for registration. Définissez Min. characters et Max. characters pour le nom avant le
@, la Free quota (MB), More reserved names (les noms de rôle comme postmaster, abuse, admin, support et noreply sont toujours réservés) et le mailcow mailbox template (vide = valeur par défaut de mailcow). - A domain administrator for the customer's own domains : le client ajoute des domaines après une vérification DNS (TXT), dans les limites du paquet. Le Free package définit Domains, Mailboxes/domain, Aliases/domain, Quota/domain (MB) et Default quota/mailbox (MB) ; le mailcow domain template est utilisé pour les nouveaux domaines clients. Avec l’option du new domain wizard, l’assistant du Toolkit crée les adresses de rôle d’un domaine client vers l’e-mail du client.
- Free registration (next to Cashier's paid plans) : laissez-le coché pour les comptes gratuits ; décochez-le quand chaque compte doit acheter une formule avec Cashier for mailcow.
Confirmation, approbation et invitations
Dans la carte Confirmation, approval, invitations :
- Address confirmation : code à 6 chiffres, lien, code et lien, ou aucun (non recommandé). Expires (hours) : de 1 à 168. Un visiteur peut demander un nouvel e-mail après une minute, au plus 5 fois par jour, et dispose de 5 tentatives par code.
- Administrator approval : les inscriptions gratuites attendent un administrateur ; définissez E-mail for registrations to approve pour être prévenu de chaque nouvelle inscription. Les inscriptions payantes ne sont jamais retenues pour approbation.
- Invitation code : désactivé, facultatif ou obligatoire.
- Terms link (asks for acceptance) : un lien vers vos conditions ; le visiteur doit les accepter.
- Form fields : nom, société, téléphone et pays : désactivé, facultatif ou obligatoire.
Approuver les inscriptions
La carte Registrations liste celles Waiting for approval. Approve crée le compte et envoie l’e-mail de bienvenue ; Reject (avec un Reason facultatif) envoie au visiteur un e-mail avec la décision. Recent affiche les dernières inscriptions et leur état.
Codes d’invitation
Dans Invitation codes, remplissez Code (empty = random), Uses (0 = unlimited), Expires, l’Account kind (mailbox, domain ou any) et, avec Cashier, la Plan que le code ouvre (y compris une formule cachée), cochez No approval si le code doit passer outre l’approbation, ajoutez une Note et appuyez sur Create the code. La liste indique combien de fois chaque code a été utilisé ; Disable et Enable le désactivent et le réactivent.
Anti-abus
Dans la carte Anti-abuse :
- Minimum time to fill in (s) : un formulaire envoyé plus vite est refusé (bots). Un champ caché attrape les bots les plus simples tout seul.
- Registrations / IP / day (0 = no limit).
- Block disposable addresses : la liste intégrée plus la liste MediaLab Works, qui arrive avec la vérification de licence tant que la licence est valide.
- Only these e-mail domains (empty = any) et Blocked e-mail domains : séparés par des espaces, des virgules ou des sauts de ligne. Un domaine couvre aussi ses sous-domaines ;
*.example.comsignifie les sous-domaines uniquement. - Le mot de passe doit respecter la politique de mots de passe propre à mailcow, celle définie dans l’interface d’administration de mailcow.
Nouveaux comptes
Dans la carte New accounts : Own text in the welcome e-mail (anglais et roumain), le Sender name of the e-mails (vide = le nom d’hôte mail) et Sign in the browser that registered (activé par défaut).
Une boîte aux lettres gratuite est créée dès que l’adresse est confirmée (et approuvée). Un administrateur de domaine est créé avec le premier domaine vérifié : d’ici là, le client dispose d’une page, My account, où l’étape suivante consiste à ajouter le domaine.
Les domaines propres aux clients
Le client ouvre My account (/mlw-signup/account.php, aussi dans le menu mailcow une fois connecté) et ajoute un domaine. La page affiche un enregistrement TXT à publier chez le fournisseur DNS du client :
_mlw-verify.example.com. TXT "mlw-verify=<token>"
Verify le vérifie aussitôt ; Sign-up le vérifie aussi toutes les 10 minutes pendant 7 jours. Quand l’enregistrement est trouvé, le domaine est ajouté à mailcow avec les limites du paquet, et la page affiche les enregistrements DNS du domaine (obligatoires et recommandés) que le client doit définir : MX, SPF, DKIM, DMARC, autodiscover et les autres, calculés par le module DNS du Toolkit. Un administrateur peut vérifier un domaine depuis le shell, dans le dossier mailcow : docker compose exec -u www-data php-fpm-mailcow php /web/mlw-signup/cli.php verify example.com.
Les domaines clients sont exclus de votre propre configuration automatique Cloudflare (le client gère son propre DNS).
Données, sauvegardes et désinstallation
- Les inscriptions, les clients et les codes d’invitation se trouvent dans la base de données de mailcow (tables
mlw_su_*), donc dans les sauvegardes de mailcow. Les réglages sont dans le dossier partagé du Toolkit. - Le timer
mlw-mailcow-accounts-<name>.timers’exécute toutes les 5 minutes : il supprime les inscriptions expirées et vérifie les domaines clients en attente. uninstall.shretire Sign-up avec le Toolkit, mais conserve les tables et chaque boîte aux lettres, domaine et administrateur de domaine créés par lui.
Problèmes courants
La page de connexion n’affiche pas le lien « Create an account ». Les inscriptions sont fermées, la licence n’est pas valide ou aucun type de compte n’est proposé (aucun domaine ouvert pour les boîtes aux lettres et aucun administrateur de domaine). Vérifiez la carte License et System > Sign-up.
La page publique indique que l’inscription n’est pas disponible. Mêmes causes : la licence (voir le message sur la carte License) ou Registrations open.
Les visiteurs ne reçoivent pas l’e-mail de confirmation. Vérifiez que mailcow délivre le courrier sortant (les e-mails sont envoyés via mailcow) et le dossier de spam. Après 5 e-mails en un jour, l’adresse doit attendre le lendemain.
Un domaine client reste « Waiting for verification ». L’enregistrement TXT est manquant, a une autre valeur ou ne s’est pas encore propagé. Vérifiez-le avec dig TXT _mlw-verify.example.com. Après 7 jours, les vérifications automatiques s’arrêtent ; Verify fonctionne toujours.
Un domaine a été refusé. Il est déjà sur ce serveur, un autre compte l’ajoute, ou le paquet du client n’a plus de domaine libre (une formule supérieure avec Cashier en permet davantage).