Files
wevia-brain/knowledge/deep/powermta-complete.md
2026-04-12 23:01:36 +02:00

5.4 KiB
Executable File

PowerMTA — Guide Expert Complet

Architecture PowerMTA

PowerMTA est un MTA (Mail Transfer Agent) haute performance conçu pour l'envoi de masse. Il se distingue des MTAs classiques (Postfix, Sendmail) par sa capacité à gérer des millions d'emails avec un contrôle fin par IP, domaine et ISP.

Composants

  • pmtad : Le daemon principal qui gère les queues et l'envoi
  • pmta : CLI pour interagir avec pmtad
  • pmtahttpd : Interface web de monitoring (par défaut port 8080)
  • pickup : Directory monitoring pour injection de fichiers

Fichier de configuration principal

/etc/pmta/config — fichier monolithique qui contient TOUTE la configuration.

Concepts clés

Virtual MTA (VMTA) : Un canal d'envoi virtuel associé à une IP source et un domaine HELO. Chaque VMTA peut avoir ses propres règles de throttling, DKIM, et backoff.

<virtual-mta mta-gmail>
    smtp-source-host 1.2.3.4 mail.mondomaine.com
    <domain gmail.com>
        max-smtp-out     5          # 5 connexions simultanées max
        max-msg-per-connection 10   # 10 messages par connexion
        max-msg-rate     100/h      # 100 emails/heure max
        bounce-after     4d12h      # Arrêter les retries après 4.5 jours
        retry-after      60m        # Réessayer après 60 minutes
    </domain>
</virtual-mta>

VirtualMTA Pool : Groupe de VMTAs pour distribuer le trafic.

<virtual-mta-pool pool-warmup>
    virtual-mta mta-ip1
    virtual-mta mta-ip2
    virtual-mta mta-ip3
</virtual-mta-pool>

Domain Configuration : Règles par ISP de destination.

<domain hotmail.com,outlook.com,live.com>
    max-smtp-out            3
    max-msg-per-connection  5
    max-msg-rate            50/h
    retry-after             30m
    bounce-after            4d12h
</domain>

<domain gmail.com>
    max-smtp-out            10
    max-msg-per-connection  20
    max-msg-rate            500/h
    retry-after             15m
    bounce-after            3d
</domain>

<domain yahoo.com,aol.com>
    max-smtp-out            5
    max-msg-per-connection  10
    max-msg-rate            200/h
    retry-after             30m
    bounce-after            4d
</domain>

DKIM Configuration

<domain mondomaine.com>
    dkim-sign yes
    dkim-identity @mondomaine.com
    dkim-selector s1
    dkim-key /etc/pmta/dkim/mondomaine.com.s1.key
    dkim-algorithm rsa-sha256
    dkim-headers from:to:subject:date:message-id:mime-version:content-type
</domain>

Accounting (Logs d'envoi)

<acct-file /var/log/pmta/acct.csv>
    records d,b,f,rb   # delivered, bounced, feedback, remote-bounce
    record-fields d timeQueued,timeImpacted,dsnAction,dsnStatus,dsnMta,dsnDiag,bounceCat,srcMta,dlvSourceIp,dlvDestinationIp,dlvEsmtpAvailable,dlvSize,vmta,orig,rcpt,dlvType,jobId,envId,header_subject
    move-to /var/log/pmta/archive/
    move-interval 1h
    delete-after 7d
</acct-file>

Commandes essentielles

# Status global
pmta show status

# Status par queue
pmta show queue

# Status par VMTA
pmta show vmtas

# Pause un VMTA
pmta pause queue --vmta mta-ip1

# Resume
pmta resume queue --vmta mta-ip1

# Voir les bounces
pmta show bounce

# Forcer le reload de config
pmta reload

# Voir les connexions actives
pmta show connections

# Stats par domaine de destination
pmta show topdomain

# Purger une queue
pmta delete queue --vmta mta-ip1 --domain gmail.com

IP Warming Schedule (Best Practice)

Jour Emails/IP/jour Cible ISP Action si bounce > 5%
1 50 Gmail uniquement STOP immédiat
2 100 Gmail + Outlook Réduire volume
3 250 Gmail + Outlook Analyser logs
4 500 Tous ISPs Vérifier seed tests
5 1,000 Tous ISPs
6 2,000 Tous ISPs
7 3,500 Tous ISPs
8-10 5,000 Tous ISPs
11-14 10,000 Tous ISPs
15-21 25,000 Tous ISPs
22-30 50,000 Tous ISPs
30+ 100,000+ Tous ISPs Volume de croisière

Règle d'or : Ne JAMAIS doubler le volume d'un jour à l'autre. Augmentation max de 50-75%.

Bounce Categories (PowerMTA)

  • 10 : Hard bounce (adresse invalide) → SUPPRIMER immédiatement
  • 20 : Soft bounce (mailbox full, temp error) → Réessayer 3 fois puis supprimer
  • 30 : Block bounce (IP/domain bloqué) → URGENT : vérifier réputation
  • 40 : Technical bounce (DNS, connexion) → Vérifier infrastructure
  • 50 : Content bounce (spam filter) → Revoir le contenu
  • 60 : Policy bounce (rate limit, auth) → Ajuster throttling
  • 70 : Protocol bounce → Vérifier configuration SMTP

Troubleshooting courant

Problème: Gmail met tout en spam

  1. Vérifier Google Postmaster Tools → reputation check
  2. Vérifier SPF/DKIM/DMARC alignment
  3. Réduire le volume drastiquement (retour à jour 1)
  4. Améliorer engagement (segmenter contacts actifs uniquement)
  5. Vérifier contenu : pas de raccourcisseurs URL, pas d'images seules, ratio texte/HTML

Problème: Outlook 421 4.7.0 throttling

  1. Réduire max-smtp-out à 2-3
  2. Réduire max-msg-rate à 30/h
  3. Augmenter retry-after à 60m
  4. Enregistrer sur SNDS (Smart Network Data Services)
  5. Vérifier Return-Path alignment

Problème: Yahoo deferring

  1. Yahoo utilise le Complaint Feedback Loop → s'inscrire
  2. Réduire volume
  3. Vérifier CFL (complaint rate) < 0.1%
  4. Yahoo décommissionne les IPs avec complaint > 0.3%