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>
This commit is contained in:
@@ -31,6 +31,8 @@ AWS_PK={{ aws_pk }}
|
||||
AWS_SECRET={{ aws_secret }}
|
||||
AWS_REGION=eu-west-3
|
||||
CLOUDFLARE_KEY={{ cloudflare_key }}
|
||||
MAILCOW_URL=https://mail.esy-web.dev
|
||||
MAILCOW_API_KEY={{ mailcow_api_key }}
|
||||
DOCUSEAL_URL=https://signature.esy-web.dev
|
||||
DOCUSEAL_API={{ docuseal_api }}
|
||||
DOCUSEAL_WEBHOOKS_SECRET_HEADER=X-Sign
|
||||
|
||||
@@ -16,6 +16,7 @@ keycloak_admin_client_secret: QqYnQc6p9aio4sBJYKNhpPsdrvpUtt2z
|
||||
aws_pk: AKIAWTT2T22CWBRBBDYN
|
||||
aws_secret: BBdgb6KxRQ8mNcpWFJsZCJxbSGNdgLhKFiITMErfBlQP
|
||||
cloudflare_key: cfat_hOADTEIl9naAUW2PUf0CfnNiToUHZtB21D3jH3f310d0b8ba
|
||||
mailcow_api_key: DF0E7E-0FD059-16226F-8ECFF1-E558B3
|
||||
docuseal_api: pgAU116mCFmeF7WQSezHqxtZW8V1fgo31u5d2FXoaKe
|
||||
docuseal_webhooks_secret: CRM_COSLAY
|
||||
smime_private_key: |
|
||||
|
||||
Reference in New Issue
Block a user