Powermta Configuration Guide Top -

| Problem | Cause | Fix | |---------|-------|-----| | High deferrals at Gmail | Too many connections per IP | Set max-smtp-out-per-ip 4 | | Bounce rate >5% | Poor list hygiene | Enable bounce classification + auto-suppression | | Low throughput | DNS blocking | Use dns-server 8.8.8.8 and dns-workers 16 | | IP blacklisting | Spikes in volume | Use <limits throttle X/hour> with gradual warmup | | No DKIM signature | Binding not linked | Verify dkim in VMTA and sign yes in binding |

Use patterns to delay retries intelligently.

<smtp-pattern 4xx>
    pattern ^4[0-9]2
    initial-pts 60
    max-pts 3600
</smtp-pattern>

PMTA operates on three core concepts:

Rule of thumb: One binding = one IP + one destination domain + one set of sending rules. powermta configuration guide top

Throttling protects you from being blacklisted. Configure per-domain policies:

<domain *>
    # Default for all domains
    max-msg-per-connection 100
    max-errors-per-domain 5
    idle-timeout 120
</domain>

<domain gmail.com> max-msg-per-hour 200000 # Respect Gmail's limits max-msg-rate 50/second # Slower warmup dns-timeout 45 use-starttls yes # Always TLS if available </domain>

<domain yahoo.com> max-msg-per-hour 150000 max-msg-rate 40/second dns-timeout 60 bounce-pattern-file /etc/pmta/bounce_patterns/yahoo.ptr </domain> | Problem | Cause | Fix | |---------|-------|-----|

<domain microsoft.com> # Outlook/Hotmail max-msg-rate 20/second # Very strict max-msg-per-hour 50000 # Use their smart host for better delivery smtp-route mail.protection.outlook.com </domain>

Pro tip: Use a warmup schedule for new IPs. Start with max-msg-rate 5/second on new domains, increase by 10% daily. PMTA operates on three core concepts:

Where messages wait when RAM is full.

disk-queue /var/spool/powermta   # Ensure this is on a fast SSD, not HDD.

PowerMTA excels at processing complaints. You must configure the acct-file to handle bounces and FBL reports automatically.

# Configure the accounting file to log bounces and FBLs
<acct-file /var/log/pmta/acct.csv>
    # Possible values: bounces, feedback, delivered, etc.
    record bounces,feedback
    max-size 100M
    rotate 5
</acct-file>

Why it matters: Without this, you will continue sending to users who have complained or whose addresses are invalid, destroying your sender reputation.


Before going live: