Files
crm_ecosplay/ansible
Serreau Jovann 484c48e331 feat: ajout service Mailcow et integration dans la verification DNS
src/Service/MailcowService.php (nouveau):
- Connexion a l'API Mailcow via X-API-Key header
- getDomains(): liste tous les domaines configures
- getDomain(): informations d'un domaine specifique
- getDomainStatus(): statut actif, nombre de boites, quota, quota utilise
- getDkimKey(): recupere la cle DKIM TXT configuree dans Mailcow
- getExpectedDnsRecords(): retourne la liste des enregistrements DNS
  attendus par Mailcow pour un domaine (MX, SPF, DMARC, DKIM,
  autodiscover CNAME, autoconfig CNAME, SRV _autodiscover, _mta-sts TXT)
- getMailboxes(): liste les boites mail d'un domaine
- isAvailable(): test de connectivite API via /api/v1/get/status/containers

src/Command/CheckDnsCommand.php:
- Ajout de MailcowService dans le constructeur
- Nouvelle methode checkMailcow() qui:
  - Verifie si le domaine existe et est actif dans Mailcow
  - Recupere la cle DKIM Mailcow et la compare avec celle du DNS
    (comparaison partielle des 40 premiers caracteres)
  - Verifie chaque enregistrement DNS attendu par Mailcow:
    - MX, SPF, DMARC, DKIM : marques comme erreur si absents
    - autodiscover, autoconfig, SRV, _mta-sts : marques comme
      warning (optionnels)
- Methodes utilitaires: getDkimFromDns(), checkDnsRecordExists(),
  checkMxExists(), checkTxtContains(), getCnameRecord()

Variables d'environnement:
- .env: MAILCOW_URL=https://mail.esy-web.dev, MAILCOW_API_KEY (vide)
- .env.local: MAILCOW_API_KEY=DF0E7E-0FD059-16226F-8ECFF1-E558B3
- ansible/vault.yml: mailcow_api_key ajoutee
- ansible/env.local.j2: MAILCOW_URL et MAILCOW_API_KEY ajoutees

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 21:31:54 +02:00
..
2026-04-01 15:42:52 +02:00