Powermta Configuration Guide Better May 2026

<virtual-mta ip1> source-ip 192.0.2.1 max-smtp-out 5 max-msg-rate 500/h </virtual-mta> <virtual-mta ip2> source-ip 192.0.2.2 max-smtp-out 10 max-msg-rate 1000/h </virtual-mta>

pmta status | File | Purpose | |------|---------| | /etc/pmta/config | Main configuration | | /etc/pmta/license | License key | | /etc/pmta/vmta | Virtual MTA definitions | | /etc/pmta/pmta.conf (alternative) | Some versions use this | 4. Basic Configuration Skeleton ( /etc/pmta/config ) # Global settings <source 0.0.0.0/0> always-allow-relay yes process-x-forwarded-for no require-auth no default-virtual-mta main </source> Pickup from local submission <source 127.0.0.1> process-x-forwarded-for yes default-virtual-mta main </source> Main virtual MTA (delivery) <virtual-mta main> queue-type FIFO max-smtp-out 100 max-msg-rate 1000/m </virtual-mta> Domain-specific delivery <domain *> max-smtp-out 20 max-msg-rate 500/h max-msg-per-connection 10 use-starttls yes require-starttls no </domain> Logging <acct-file /var/log/pmta/acct.csv> record job,vmta,domain,bytes,msgs,rcpts,status,dsn-status,orig-rcpts,time </acct-file>

This configuration guide provides a complete foundation—extend it with FBL loops, custom bounce scripts, and multi-server clusters as needed. powermta configuration guide

<domain gmail.com> max-smtp-out 20 max-msg-rate 200/h max-msg-per-connection 5 use-starttls yes dns-timeout 30 smtp-timeout 60 retry-after 300 final-retry-after 86400 </domain> <domain yahoo.com> max-smtp-out 15 max-msg-rate 150/h max-msg-per-connection 3 </domain>

<virtual-mta transactional> vmta-name transactional source-ip 192.0.2.10 max-smtp-out 50 max-msg-rate 10000/h queue-type FIFO </virtual-mta> <virtual-mta marketing> vmta-name marketing source-ip 192.0.2.20 max-smtp-out 200 max-msg-rate 50000/h queue-type FIFO </virtual-mta> &lt;virtual-mta ip1&gt; source-ip 192

<bounce-handler bounces@example.com> command /usr/local/bin/process-bounce.php max-rcpts 100 </bounce-handler> Add to source:

Per-domain rate limiting:

#!/bin/bash while read line; do echo "$line" >> /var/log/pmta/bounces.log done PowerMTA provides CSV accounting logs for analysis.