Zum Hauptinhalt springen

Mailcow Smart-Home-Integration, kostenlos und Open Source

Mailcow-Integration für Gladys Assistant

Überwache deinen mailcow-Mailserver: Container, Queue, Quarantäne, Speicher, Postfächer.

Überwache deinen Mailserver mailcow: dockerized aus Gladys: Container, Mail-Warteschlange, Quarantäne, gesperrte IPs, Speicher, Domains und Postfächer — mit Szenen-Auslösern, Szenen-Aktionen und Dashboard-Widgets.

Benötigt Gladys 5.3 oder neuer und einen mailcow-API-Schlüssel.

1. Einen API-Schlüssel in mailcow erstellen​

  1. Melde dich als Administrator an der mailcow-Weboberfläche an.
  2. Öffne System → Konfiguration → Zugang → Administratoren und klappe API auf.
  3. Wähle den Schlüssel:
    • Nur Lesen: reicht zum Überwachen des Servers (empfohlen);
    • Lesen und Schreiben: nur nötig, wenn Gladys die Warteschlange senden oder Domains und Postfächer ein- und ausschalten soll.
  4. Trage bei API-Zugriff von diesen IPs/CIDR erlauben die IP-Adresse ein, von der Gladys mailcow erreicht (die IP des Gladys-Rechners oder seine öffentliche IP, wenn mailcow im Internet steht).
  5. Aktiviere API aktivieren und speichere. Kopiere den Schlüssel.

Fehlt die IP, antwortet mailcow „api access denied for ip …“: Verbindung testen zeigt diese IP, trage sie in die Liste ein.

2. Die Integration konfigurieren​

FeldWas eintragen
Lokale Adressemailcow in deinem Netzwerk, z. B. https://192.168.1.20. Leer, wenn mailcow woanders ist.
Öffentliche Adressemailcow im Internet, z. B. https://mail.beispiel.de.
API-SchlüsselDer oben kopierte Schlüssel.
Zertifikat der lokalen Adresse prüfenDeaktivieren, wenn die lokale Adresse eine IP ist (das Zertifikat nennt die Domain).
Aktualisierungsintervall (s)Wie oft der Server gelesen wird: 60 s bis 1 h, standardmäßig 300 s.
Ein Gerät pro DomainStandardmäßig an.
Ein Gerät pro PostfachStandardmäßig aus; für einen Server mit wenigen Postfächern (höchstens 200).
Änderungen erlaubenStandardmäßig aus. An (mit Schreibschlüssel): Warteschlange senden, Domains/Postfächer ein- und ausschalten.
SchwellenWarteschlange (20 Mails), Speicher (85 %), Postfach-Kontingent (90 %): für die Szenen-Auslöser.
Detaillierte ProtokolleProtokolliert jedes Lesen. Der API-Schlüssel wird nie protokolliert.

Klicke dann auf Verbindung testen: Es liest den Server und fasst ihn zusammen (Version, Container, Warteschlange, Quarantäne, Speicher, Domains, Postfächer) oder sagt, was nicht stimmt.

3. Lokal und Cloud​

Die Integration kennt zwei Wege zu mailcow:

  • die lokale Adresse ist der Transport local;
  • die öffentliche Adresse ist der Transport cloud (ein Server bei einem Hoster oder dein eigener Server, über das Internet erreicht).

Gib eine oder beide an. Mit beiden wählt der Schalter Lokale Verbindung bevorzugen (von Gladys angezeigt), welche zuerst versucht wird; die andere dient als Ersatz. Jedes Gerät zeigt ein Abzeichen mit der Adresse, die geantwortet hat. Wird der Ersatz verwendet, ist das Abzeichen eingeschränkt (oranger Punkt): Es funktioniert, aber nicht über die bevorzugte Adresse.

Das Zertifikat der öffentlichen Adresse wird immer geprüft. Nur die lokale Adresse kann die Prüfung auslassen.

4. Geräte​

Öffne Integrationen → Mailcow → Entdecken, um sie anzulegen.

mailcow server (immer): laufende Container, gestoppte Container, Mail-Warteschlange, Quarantäne, gesperrte IPs, belegter Mailspeicher (GB und %), Domains, Postfächer, mailcow-Version.

mailcow <Domain> (eine pro Domain): aktiv (Schalter), Postfächer, Aliasse, Nachrichten, belegter Speicher.

<Postfachadresse> (eines pro Postfach, falls aktiviert): aktiv (Schalter), belegtes Kontingent (%), belegter Speicher, Nachrichten.

Die Schalter aktiv sind aus Gladys nur nutzbar, wenn Änderungen erlauben an ist; sonst sind sie schreibgeschützt.

5. Szenen-Auslöser​

Wähle in einer Szene Integrationen → Mailcow. Ein Auslöser feuert, wenn sich zwischen zwei Lesevorgängen etwas ändert: Das erste Lesen nach einem Start löst nie etwas aus.

AuslöserSchlüsselFilterVariablen
Ein mailcow-Container ist gestopptcontainer_downContainercontainer, state
Ein mailcow-Container läuft wiedercontainer_upContainercontainer
Mail-Warteschlange zu langqueue_high–queue_size, threshold
Mailspeicher fast vollstorage_high–used_percent, threshold
Postfach fast vollquota_highDomain, Postfachmailbox, domain, percent, threshold
Eine Mail wurde in Quarantäne gestelltquarantine_newEmpfängersender, recipient, subject, score, virus
Eine IP wurde gesperrtip_banned–ip
mailcow-Server nicht erreichbarconnection_lost–reason, message
mailcow-Server wieder erreichbarconnection_restored–transport

Die Schwellen lösen einmal aus, wenn der Wert sie überschreitet. Nutze die Variablen in den folgenden Aktionen, z. B. eine Nachricht {{triggerEvent.data.container}} ist gestoppt. Pro Lesen werden höchstens 10 Ereignisse einer Art gesendet (eine Spam-Welle überflutet deine Szenen nicht).

6. Szenen-Aktionen​

AktionSchlüsselFelderAusgaben
mailcow-Server jetzt lesenrefresh–reachable, queue_size, quarantine, containers_down, storage_percent
Mail-Warteschlange sendenflush_queue–queued_before
Postfach ein- oder ausschaltenset_mailbox_activePostfachadresse, aktivchanged

flush_queue und set_mailbox_active benötigen Änderungen erlauben und einen Schlüssel mit Schreibzugriff.

7. Dashboard-Widgets​

  • mailcow-Server: verwendete Adresse, Version, Container, gestoppte Container, Warteschlange, Speicheranzeige, Quarantäne und gesperrte IPs, eine Schaltfläche Aktualisieren, eine Schaltfläche Warteschlange senden (wenn Änderungen erlaubt sind, mit Bestätigung) und ein Link zu mailcow.
  • mailcow-Quarantäne: die letzten Mails in Quarantäne (Betreff, Absender, Empfänger, Wert oder Virus). Einstellung: Anzahl der Mails (1 bis 8).
  • mailcow-Postfächer: die Postfächer, die ihrem Kontingent am nächsten sind. Einstellungen: Anzahl (1 bis 10) und eine optionale Domain.

8. Fehlerbehebung​

MeldungWas tun
Der mailcow-Server antwortet nichtPrüfe die Adresse und ob Gladys ihn erreicht (Firewall, DNS).
Das HTTPS-Zertifikat wird abgelehntBei einer lokalen Adresse als IP „Zertifikat der lokalen Adresse prüfen“ deaktivieren.
Der API-Schlüssel wird abgelehntKopiere den Schlüssel erneut; prüfe, ob die API aktiviert ist.
mailcow verweigert der IP … die APITrage diese IP bei „API-Zugriff von diesen IPs/CIDR erlauben“ ein.
Etwas hat geantwortet, aber nicht die APIGib die Adresse der mailcow-Weboberfläche an, ohne Pfad.
Änderungen sind ausgeschaltetAktiviere „Änderungen erlauben“ und verwende den Schlüssel mit Schreibzugriff.
Dieser API-Schlüssel ist schreibgeschütztVerwende für Änderungen den Schlüssel mit Schreibzugriff.

Ein Bereich, auf den mailcow nicht antwortet (etwa bei einer älteren Version), wird einfach ausgelassen: Der Rest wird trotzdem gelesen, und Verbindung testen listet auf, was nicht gelesen wurde.

Konfigurationseinstellungen​

Diese Einstellungen fragt Mailcow in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Erste SchrittesectionNeinDie Integration liest deinen mailcow-Server über seine API. Öffne in mailcow System → Konfiguration → Zugang → Administratoren, klappe API auf, erstelle einen Nur-Lese-Schlüssel (oder einen mit Schreibzugriff, um aus Gladys zu handeln) und trage die IP, von der Gladys mailcow erreicht, bei den erlaubten Adressen ein. Gib die lokale Adresse, die öffentliche oder beide an: Der Schalter „Lokale Verbindung bevorzugen“ wählt, welche zuerst versucht wird, die andere dient als Ersatz.
Lokale AdressestringNeinDie Adresse von mailcow in deinem Netzwerk (der „lokale“ Transport). Leer lassen, wenn mailcow nicht in deinem Netzwerk ist.
Öffentliche AdressestringNeinDie Adresse von mailcow im Internet (der „Cloud“-Transport), z. B. ein Server bei einem Hoster. Sein Zertifikat wird immer geprüft.
API-SchlüsselsecretJaDer Nur-Lese-Schlüssel reicht, um den Server zu überwachen. Der Schlüssel mit Schreibzugriff erlaubt Gladys außerdem, die Warteschlange zu senden und Domains und Postfächer ein- oder auszuschalten, wenn „Änderungen erlauben“ aktiviert ist.
Zertifikat der lokalen Adresse prüfenbooleanNeinÜber seine IP erreicht, zeigt mailcow ein Zertifikat für seinen Domainnamen, das nicht passt: Deaktiviere dies für eine lokale Adresse, die als IP geschrieben ist. Die öffentliche Adresse wird immer geprüft.
Aktualisierungsintervall (s)numberNeinWie oft der Server gelesen wird, in Sekunden (mindestens eine Minute). Jedes Lesen ist eine Anfrage pro API-Bereich.
GerätesectionNeinDer Server ist immer ein Gerät. Jede Domain und jedes Postfach kann auch eines sein, um sie zu verfolgen, als Diagramm zu zeigen oder aus Gladys ein- und auszuschalten.
Ein Gerät pro DomainbooleanNein
Ein Gerät pro PostfachbooleanNeinFür einen Server mit wenigen Postfächern (höchstens 200 werden veröffentlicht).
Änderungen erlaubenbooleanNeinErlaubt Gladys, die Mail-Warteschlange zu senden und Domains und Postfächer ein- oder auszuschalten (API-Schlüssel mit Schreibzugriff nötig). Ausgeschaltet bleibt alles schreibgeschützt.
AlarmschwellensectionNeinDie Szenen-Auslöser „Mail-Warteschlange zu lang“, „Mailspeicher fast voll“ und „Postfach fast voll“ lösen aus, wenn ein Wert seine Schwelle überschreitet.
Schwelle der WarteschlangenumberNein
Schwelle des Speichers (%)numberNein
Schwelle des Postfach-Kontingents (%)numberNein
Detaillierte Protokolle (Debug)booleanNeinProtokolliert jedes Lesen des Servers. Der API-Schlüssel wird nie protokolliert.

So installierst du Mailcow in Gladys​

  1. Öffne in Gladys Integrationen: Mailcow erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/prohand/gladys-mailcow:2.0.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/prohand/gladys-mailcow.

Mailcow benötigt Gladys >=5.3.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Mailcow ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von prohand veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂