Selbstregistrierung für mailcow: Postfächer oder Domain-Admins

Eine öffentliche Registrierungsseite für deine eigene mailcow: reservierte Namen, Quoten, Einladungscodes, Freigabe und Missbrauchsschutz – in mailcow wird nichts angelegt, bevor die E-Mail-Adresse bestätigt ist.

Wenn du mailcow für eine Schule, einen Verein, eine Community oder eine Handvoll kleiner Kunden betreibst, kennst du den Engpass: mailcow-dockerized hat keine Registrierungsseite, also läuft jedes Postfach und jede Domain über einen Administrator. Bei fünf Konten ist das in Ordnung; bei fünfzig wird es mühsam. Sign-up for mailcow fügt deiner eigenen mailcow eine öffentliche Seite unter /mlw-signup/ hinzu, sodass Besucher ihr Konto selbst anlegen können – innerhalb der Grenzen, die du setzt, und erst nachdem sie ihre E-Mail-Adresse bestätigt haben. Dieses Tutorial führt durch die Einrichtung für den Fall Anbieter/Schule/Community: was Besucher bekommen, wie Namen und Quoten gehandhabt werden, wie Bestätigung, Freigabe und Einladungscodes zusammenspielen und wie du Missbrauch draußen hältst.

Was du bekommst – und was in deiner Hand bleibt

Das Plugin ist Teil des mailcow-Toolkit-Pakets (0.4.0 oder neuer) und hat eine eigene Lizenz. Es fügt eine öffentliche Registrierungsseite auf den Hosts der mailcow-Oberfläche und des Webmails hinzu; solange die Registrierungen offen sind, zeigt die Anmeldeseite von mailcow einen Link Create an account. Du entscheidest, was ein Besucher bekommt: ein Postfach auf einer der Domains, die du für die Registrierung öffnest, ein Domain-Administrator-Konto für die eigenen Domains des Besuchers oder beides. Konten werden mit den eigenen Funktionen von mailcow angelegt, mit deinen Vorlagen und Limits – genau so, als hätte ein Administrator sie hinzugefügt.

Das entscheidende Versprechen für alle, die einen gemeinsamen Server betreiben: In mailcow wird nichts angelegt, bevor die Adresse bestätigt ist (und freigegeben oder mit Cashier for mailcow bezahlt wurde). Unbestätigte Registrierungen laufen einfach ab.

Voraussetzungen

  • Das mailcow-Toolkit-Paket 0.4.0 oder neuer, installiert auf mailcow-dockerized (Linux, docker compose, systemd), mit Root-Zugriff auf dem Host, um install.sh auszuführen. Sign-up ist Teil des Pakets; es gibt nichts weiter herunterzuladen.
  • Ausgehendes HTTPS zu medialab.works vom Server (Lizenzprüfung) und eine mailcow, die E-Mails versendet (Bestätigungs-, Freigabe- und Willkommensnachrichten).
  • Mindestens eine mailcow-Domain, die du für die Registrierung öffnest, wenn Besucher Postfächer bekommen sollen.
  • Für eigene Domains: Der Kunde muss bei seinem DNS-Anbieter einen TXT-Eintrag anlegen können.
  • Für bezahlte Tarife: Cashier for mailcow mit eigener Lizenz. Für kostenlose Konten brauchst du es nicht.

Schritt 1 – Toolkit installieren oder aktualisieren

install.sh aus dem Paket (0.4.0 oder neuer) installiert Sign-up neben dem Toolkit: die Webdateien in data/web/mlw-signup von mailcow, den Einstellungsordner, die Tabellen mlw_su_* in der Datenbank von mailcow und den Timer mlw-mailcow-accounts-<name>.timer, der die Sign-up- und Cashier-Jobs alle 5 Minuten ausführt. Ein bereits installiertes Toolkit bekommt all das, wenn du es über System > Updates (Toolkit) auf 0.4.0 aktualisierst oder das neue install.sh ausführst. Sign-up bleibt ausgeschaltet, bis es lizenziert ist und du die Registrierungen öffnest.

Sign-up wird zusammen mit dem Toolkit aktualisiert: ein Paket, ein Update. Das Update lässt sich über die License-Karte eines beliebigen Produkts mit gültiger Lizenz starten.

Schritt 2 – Lizenz aktivieren

Öffne System > Updates (Toolkit) (nur für Admins). Ab 0.4.0 zeigt die Seite eine License-Karte pro Produkt; nutze die Karte License · Sign-up for mailcow. Gib deinen Lizenzschlüssel ein und drücke Activate, oder starte mit deiner E-Mail-Adresse die kostenlose 30-Tage-Testphase. Bei einem mailcow-Bundle-Schlüssel trägst du denselben Schlüssel in die License-Karte jedes Produkts ein. Auf der Shell kannst du im mailcow-Ordner auch ausführen:

docker compose exec -u www-data php-fpm-mailcow php /web/mlw-toolkit/cli.php activate mailcow-signup <KEY>

Die Lizenz wird beim Start des Servers und einmal täglich geprüft; ohne Internet arbeitet Sign-up nach der letzten erfolgreichen Prüfung noch 7 Tage weiter. Ohne gültige Lizenz schließen die Registrierungen und die Hintergrundjobs für Sign-up stoppen – bestehende Konten, Postfächer und Domains werden nie angetastet.

Schritt 3 – Festlegen, was Besucher bekommen

Öffne System > Sign-up. Die Karte Registration enthält die wichtigsten Entscheidungen; speichere das Formular mit dem Button am Ende.

  • Registrations open schaltet die öffentliche Seite ein und zeigt den Link Create an account auf der Anmeldeseite von mailcow (Oberfläche und Webmail-Hostname).
  • Ein Postfach auf einer deiner Domains: Aktiviere die Option und wähle die Domains open for registration. Lege Min. characters und Max. characters für den Namen vor dem @ fest, ebenso die Free quota (MB), More reserved names (Rollennamen wie postmaster, abuse, admin, support und noreply sind immer reserviert) und die mailcow mailbox template (leer = Standard von mailcow). Für eine Schule oder einen Verein ist das meist die ganze Einrichtung: eine Domain öffnen, die Rollennamen reservieren, eine sinnvolle Quote setzen.
  • Ein Domain-Administrator für die eigenen Domains des Kunden: Der Kunde fügt Domains nach einer DNS-(TXT-)Prüfung hinzu, innerhalb der Limits des Pakets. Das Free package legt Domains, Mailboxes/domain, Aliases/domain, Quota/domain (MB) und Default quota/mailbox (MB) fest; die mailcow domain template wird für neue Kundendomains verwendet. Mit der Option zum new domain wizard legt der Assistent des Toolkits die Rollenadressen einer Kundendomain an die E-Mail-Adresse des Kunden an.
  • Kostenlose Registrierung (neben den bezahlten Tarifen von Cashier): Für kostenlose Konten aktiviert lassen; deaktivieren, wenn jedes Konto einen Tarif kaufen muss.

Schritt 4 – Bestätigung, Freigabe und Einladungen

In der Karte Confirmation, approval, invitations:

  • Adressbestätigung: 6-stelliger Code, Link, Code und Link oder keine (nicht empfohlen). Expires (hours) reicht von 1 bis 168. Ein Besucher kann nach einer Minute eine neue E-Mail anfordern, höchstens 5-mal pro Tag, und hat 5 Versuche pro Code.
  • Freigabe durch den Administrator: Kostenlose Registrierungen warten auf einen Administrator; setze E-mail for registrations to approve, um über jede neue informiert zu werden. Bezahlte Registrierungen werden nie zur Freigabe zurückgehalten. Für eine Schule ist das der unauffällige Weg, die Mitgliederliste sauber zu halten.
  • Einladungscode: aus, optional oder erforderlich.
  • Terms link (asks for acceptance): ein Link zu deinen Bedingungen; der Besucher muss sie akzeptieren.
  • Formularfelder: Name, Firma, Telefon und Land – aus, optional oder erforderlich.

Registrierungen freigeben

Die Karte Registrations listet diejenigen auf, die Waiting for approval sind. Approve legt das Konto an und versendet die Willkommens-E-Mail; Reject (mit optionalem Reason) schickt dem Besucher eine E-Mail mit der Entscheidung. Recent zeigt die neuesten Registrierungen und ihren Status.

Einladungscodes

Trage in Invitation codes den Code (empty = random), die Uses (0 = unlimited), Expires, die Account kind (mailbox, domain oder any) und, mit Cashier, den Plan ein, den der Code öffnet (auch einen versteckten); aktiviere No approval, wenn der Code die Freigabe überspringen soll, füge eine Note hinzu und drücke Create the code. Die Liste zeigt, wie oft jeder Code genutzt wurde; Disable und Enable schalten ihn aus und ein. Für eine Community ist ein einzelner mehrfach nutzbarer Code mit Ablauf und ohne Freigabe oft die richtige Balance: Mitglieder kommen ohne Warten rein, Fremde nicht.

Schritt 5 – Missbrauchsschutz einrichten

In der Karte Anti-abuse:

  • Minimum time to fill in (s): Ein schneller abgeschicktes Formular wird abgelehnt. Ein verstecktes Feld fängt die einfachsten Bots schon allein ab.
  • Registrations / IP / day (0 = no limit).
  • Block disposable addresses: die eingebaute Liste plus die Liste von MediaLab Works, die mit der Lizenzprüfung eintrifft, solange die Lizenz gültig ist.
  • Only these e-mail domains (empty = any) und Blocked e-mail domains, getrennt durch Leerzeichen, Kommas oder Zeilenumbrüche. Eine Domain umfasst auch ihre Subdomains; *.example.com bedeutet nur die Subdomains. Für eine Schule ist die Beschränkung auf die eigene Domain (und vielleicht die eines Partners) ein starker, einfacher Filter.
  • Das Passwort muss der Passwortrichtlinie von mailcow folgen, also der, die in der Admin-Oberfläche von mailcow gesetzt ist.

Schritt 6 – Willkommens-E-Mail und Anmeldung

In der Karte New accounts: Own text in the welcome e-mail (Englisch und Rumänisch), der Sender name of the e-mails (leer = der Mail-Hostname) und Sign in the browser that registered (standardmäßig an). Ein kostenloses Postfach wird angelegt, sobald die Adresse bestätigt (und freigegeben) ist. Ein Domain-Administrator wird mit der ersten verifizierten Domain angelegt: bis dahin hat der Kunde eine Seite, My account, auf der der nächste Schritt das Hinzufügen der Domain ist.

Schritt 7 – Die eigenen Domains des Kunden

Der Kunde öffnet My account (/mlw-signup/account.php, auch im mailcow-Menü, solange er angemeldet ist) und fügt eine Domain hinzu. Die Seite zeigt einen TXT-Eintrag, der beim DNS-Anbieter des Kunden veröffentlicht werden muss:

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

Verify prüft ihn sofort; Sign-up prüft außerdem 7 Tage lang alle 10 Minuten. Wird der Eintrag gefunden, wird die Domain mit den Limits des Pakets (Domains, Postfächer, Aliase, Quote) zu mailcow hinzugefügt, und die Seite zeigt die DNS-Einträge, die die Domain braucht (MX, SPF, DKIM, DMARC und die empfohlenen), berechnet vom DNS-Modul des Toolkits. Der new domain wizard des Toolkits kann die Rollenadressen einer Kundendomain an den Kunden senden, und Kundendomains bleiben aus deiner eigenen automatischen Cloudflare-Einrichtung heraus.

Tipps und Fehlerbehebung

  • Der Link Create an account fehlt. Prüfe, ob Registrations open gespeichert ist und die Lizenz gültig ist: Ohne Lizenz meldet die öffentliche Seite, dass die Registrierung nicht verfügbar ist, und der Link verschwindet.
  • Besucher erhalten die Bestätigungs-E-Mail nicht. Sign-up ist darauf angewiesen, dass mailcow E-Mails versendet; teste deinen ausgehenden Mailversand, bevor du die Seite öffnest.
  • Eine Registrierung wird nie abgeschlossen. Unbestätigte Registrierungen laufen ab; der Besucher kann nach einer Minute eine neue E-Mail anfordern, bis zu 5-mal pro Tag, mit 5 Versuchen pro Code. Ist die Freigabe aktiv, schau unter Registrations > Waiting for approval nach.
  • Ein Name wird abgelehnt. Rollennamen wie postmaster, abuse, admin, support und noreply sind immer reserviert; füge eigene unter More reserved names hinzu und prüfe die minimale und maximale Länge.
  • Eine Domain bleibt unverifiziert. Der TXT-Eintrag muss genau _mlw-verify.<domain> mit dem angezeigten Wert sein; die Prüfung läuft 7 Tage lang alle 10 Minuten, danach muss der Kunde ihn erneut hinzufügen.
  • Daten und Backups. Registrierungen liegen in der eigenen Datenbank von mailcow (Tabellen mlw_su_*) und sind damit Teil der Backups von mailcow. Die Einstellungen liegen im Ordner des Toolkits auf dem Server.

Fazit

Für einen Anbieter, eine Schule oder eine Community liegt der Wert der Selbstregistrierung nicht allein in der Geschwindigkeit – sondern darin, dass jedes Konto durch die Regeln begrenzt ist, die du einmal festgeschrieben hast: reservierte Namen, Quoten, erlaubte Domains, Einladungscodes und Freigabe, wo sie zählt. Nichts landet in mailcow, bevor die Adresse bestätigt ist, und falls die Lizenz einmal ausläuft, stoppen neue Registrierungen, während alles Bestehende weiterläuft. Die vollständige Optionsreferenz findest du im user guide; die Produktseite ist Sign-up for mailcow, und das changelog verfolgt die Updates. Wenn sich etwas anders verhält als hier beschrieben, sind die knowledge base und die FAQ der nächste Schritt, und du kannst uns jederzeit kontaktieren.

Dieser Beitrag wurde mit KI-Unterstützung auf Grundlage unserer Produktdokumentation oder der aufgeführten Quellen verfasst und vor der Veröffentlichung automatisch geprüft.

Als Nächstes lesen

Du betreibst Emby, Jellyfin oder Nextcloud?

Unsere Plugins und Apps bringen Live-TV, Untertitel, Registrierung und Sicherheit auf deinen eigenen Server, mit kostenlosem Testzeitraum.