Aller au contenu principal

Intégration domotique Mailcow, gratuite et open source

Intégration Mailcow pour Gladys Assistant

Surveillez votre serveur mailcow : conteneurs, file, quarantaine, stockage et boîtes.

Surveillez votre serveur mail mailcow: dockerized depuis Gladys : conteneurs, file d'attente, quarantaine, IP bannies, stockage, domaines et boîtes mail — avec des déclencheurs de scène, des actions de scène et des widgets de tableau de bord.

Nécessite Gladys 5.3 ou plus récent et une clé d'API mailcow.

1. Créer une clé d'API dans mailcow​

  1. Connectez-vous à l'interface web de mailcow en administrateur.
  2. Ouvrez Système → Configuration → Accès → Administrateurs, puis dépliez API.
  3. Choisissez la clé :
    • Lecture seule : suffit pour surveiller le serveur (recommandé) ;
    • Lecture-écriture : seulement si Gladys doit vider la file ou activer/désactiver domaines et boîtes mail.
  4. Dans Autoriser l'accès API depuis ces IP/CIDR, ajoutez l'adresse IP depuis laquelle Gladys joint mailcow (l'IP de la machine Gladys, ou son IP publique si mailcow est sur internet).
  5. Cochez Activer l'API et enregistrez. Copiez la clé.

Si l'IP manque, mailcow répond « api access denied for ip … » : Tester la connexion affiche cette IP, ajoutez-la à la liste.

2. Configurer l'intégration​

ChampQuoi mettre
Adresse localemailcow sur votre réseau, ex. https://192.168.1.20. Vide si mailcow est ailleurs.
Adresse publiquemailcow sur internet, ex. https://mail.exemple.fr.
Clé d'APILa clé copiée plus haut.
Vérifier le certificat de l'adresse localeÀ décocher si l'adresse locale est une IP (le certificat nomme le domaine).
Intervalle de rafraîchissement (s)Fréquence de lecture du serveur : de 60 s à 1 h, 300 s par défaut.
Un appareil par domaineActivé par défaut.
Un appareil par boîte mailDésactivé par défaut ; pour un serveur avec peu de boîtes (200 au plus).
Autoriser les modificationsDésactivé par défaut. Activé (avec une clé lecture-écriture) : vider la file, activer/désactiver domaines et boîtes.
SeuilsFile (20 mails), stockage (85 %), quota des boîtes (90 %) : utilisés par les déclencheurs.
Journaux détaillésJournalise chaque lecture. La clé d'API n'est jamais journalisée.

Cliquez ensuite sur Tester la connexion : il lit le serveur et le résume (version, conteneurs, file, quarantaine, stockage, domaines, boîtes), ou dit ce qui ne va pas.

3. Local et cloud​

L'intégration connaît deux chemins vers mailcow :

  • l'adresse locale est le transport local ;
  • l'adresse publique est le transport cloud (un serveur chez un hébergeur, ou votre serveur joint par internet).

Indiquez l'une, l'autre ou les deux. Avec les deux, l'interrupteur Préférer la connexion locale (affiché par Gladys) choisit celle essayée en premier ; l'autre sert de secours. Chaque appareil affiche un badge avec l'adresse qui a répondu. Quand le secours est utilisé, le badge est dégradé (point orange) : ça marche, mais pas par l'adresse préférée.

Le certificat de l'adresse publique est toujours vérifié. Seule l'adresse locale peut s'en passer.

4. Appareils​

Ouvrez Intégrations → Mailcow → Découverte pour les créer.

mailcow server (toujours) : conteneurs en marche, conteneurs arrêtés, file d'attente, quarantaine, IP bannies, stockage des mails (Go et %), domaines, boîtes mail, version de mailcow.

mailcow <domaine> (un par domaine) : actif (interrupteur), boîtes mail, alias, messages, stockage utilisé.

<adresse de la boîte> (un par boîte, si activé) : active (interrupteur), quota utilisé (%), stockage utilisé, messages.

Les interrupteurs actif ne sont utilisables depuis Gladys que si Autoriser les modifications est activé ; sinon ils sont en lecture seule.

5. Déclencheurs de scène​

Dans une scène, choisissez Intégrations → Mailcow. Un déclencheur part quand quelque chose change entre deux lectures : la première lecture après un démarrage ne déclenche jamais rien.

DéclencheurCléFiltresVariables
Un conteneur mailcow s'est arrêtécontainer_downconteneurcontainer, state
Un conteneur mailcow tourne à nouveaucontainer_upconteneurcontainer
File d'attente trop longuequeue_high–queue_size, threshold
Stockage presque pleinstorage_high–used_percent, threshold
Boîte mail presque pleinequota_highdomaine, boîtemailbox, domain, percent, threshold
Un mail a été mis en quarantainequarantine_newdestinatairesender, recipient, subject, score, virus
Une IP a été bannieip_banned–ip
Serveur mailcow injoignableconnection_lost–reason, message
Serveur mailcow à nouveau joignableconnection_restored–transport

Les seuils se déclenchent une fois, quand la valeur les dépasse. Utilisez les variables dans les actions suivantes, par exemple un message {{triggerEvent.data.container}} est arrêté. Au plus 10 événements d'un même type sont envoyés par lecture (une vague de spam n'inonde pas vos scènes).

6. Actions de scène​

ActionCléChampsSorties
Lire le serveur mailcow maintenantrefresh–reachable, queue_size, quarantine, containers_down, storage_percent
Vider la file d'attenteflush_queue–queued_before
Activer ou désactiver une boîte mailset_mailbox_activeadresse de la boîte, activechanged

flush_queue et set_mailbox_active demandent Autoriser les modifications et une clé en lecture-écriture.

7. Widgets du tableau de bord​

  • Serveur mailcow : adresse utilisée, version, conteneurs, conteneurs arrêtés, file, jauge du stockage, quarantaine et IP bannies, un bouton Actualiser, un bouton Vider la file (si les modifications sont autorisées, avec confirmation) et un lien vers mailcow.
  • Quarantaine mailcow : les derniers mails en quarantaine (objet, expéditeur, destinataire, score ou virus). Réglage : nombre de mails (1 à 8).
  • Boîtes mail mailcow : les boîtes les plus proches de leur quota. Réglages : nombre (1 à 10) et un domaine facultatif.

8. Dépannage​

MessageQue faire
Le serveur mailcow ne répond pasVérifiez l'adresse et que Gladys peut le joindre (pare-feu, DNS).
Le certificat HTTPS est refuséPour une adresse locale écrite en IP, décochez « Vérifier le certificat de l'adresse locale ».
La clé d'API est refuséeRecopiez la clé ; vérifiez que l'API est activée.
mailcow refuse l'API à l'IP …Ajoutez cette IP dans « Autoriser l'accès API depuis ces IP/CIDR ».
Quelque chose a répondu, mais pas l'APIIndiquez l'adresse de l'interface web de mailcow, sans chemin.
Les modifications sont désactivéesCochez « Autoriser les modifications » et utilisez la clé lecture-écriture.
Cette clé d'API est en lecture seuleUtilisez la clé lecture-écriture pour les modifications.

Une partie à laquelle mailcow ne répond pas (une version ancienne, par exemple) est simplement ignorée : le reste est lu quand même, et Tester la connexion liste ce qui n'a pas été lu.

Paramètres de configuration​

Voici les paramètres demandés par Mailcow dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Pour commencersectionNonL'intégration lit votre serveur mailcow par son API. Dans mailcow, ouvrez Système → Configuration → Accès → Administrateurs, dépliez API, créez une clé en lecture seule (ou en lecture-écriture pour agir depuis Gladys) et ajoutez l'IP depuis laquelle Gladys joint mailcow aux adresses autorisées. Indiquez l'adresse locale, la publique, ou les deux : l'interrupteur « Préférer la connexion locale » choisit celle essayée en premier, l'autre sert de secours.
Adresse localestringNonL'adresse de mailcow sur votre réseau (le transport « local »). Laissez vide si mailcow n'est pas sur votre réseau.
Adresse publiquestringNonL'adresse de mailcow sur internet (le transport « cloud »), par exemple un serveur chez un hébergeur. Son certificat est toujours vérifié.
Clé d'APIsecretOuiLa clé en lecture seule suffit pour surveiller le serveur. La clé en lecture-écriture permet aussi à Gladys de vider la file et d'activer ou désactiver domaines et boîtes mail, si « Autoriser les modifications » est coché.
Vérifier le certificat de l'adresse localebooleanNonJointe par son IP, mailcow présente un certificat fait pour son nom de domaine, qui ne correspond pas : décochez ceci pour une adresse locale écrite en IP. L'adresse publique est toujours vérifiée.
Intervalle de rafraîchissement (s)numberNonFréquence de lecture du serveur, en secondes (une minute minimum). Chaque lecture fait une requête par partie de l'API.
AppareilssectionNonLe serveur est toujours un appareil. Chaque domaine et chaque boîte mail peuvent l'être aussi, pour les suivre, les grapher, ou les activer et désactiver depuis Gladys.
Un appareil par domainebooleanNon
Un appareil par boîte mailbooleanNonPour un serveur avec peu de boîtes mail (200 au plus sont publiées).
Autoriser les modificationsbooleanNonPermet à Gladys de vider la file d'attente et d'activer ou désactiver domaines et boîtes mail (clé d'API en lecture-écriture nécessaire). Désactivé, tout reste en lecture seule.
Seuils d'alertesectionNonLes déclencheurs de scène « File d'attente trop longue », « Stockage presque plein » et « Boîte mail presque pleine » se déclenchent quand une valeur passe son seuil.
Seuil de la file d'attentenumberNon
Seuil du stockage (%)numberNon
Seuil du quota des boîtes (%)numberNon
Journaux détaillés (debug)booleanNonJournalise chaque lecture du serveur. La clé d'API n'est jamais journalisée.

Comment installer Mailcow dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Mailcow apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. Cliquez sur Installer. Gladys télécharge l'image Docker (ghcr.io/prohand/gladys-mailcow:2.0.0), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/prohand/gladys-mailcow.

Mailcow nécessite Gladys >=5.3.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.

Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.

À propos des intégrations externes​

Mailcow est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par prohand, et non par l'équipe cœur de Gladys.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂