<acct-file /var/log/pmta/acct.csv> record job,vmta,domain,bytes,msgs,rcpts,status,dsn-status,time roll daily compress yes </acct-file> Monitoring via pmta command:
<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> powermta configuration guide
<source 0.0.0.0/0> auth-user myuser mypass require-auth yes </source> Better: restrict injection to localhost or a specific internal IP. Use domain stanzas to tune retries, timeouts, and throttling per recipient domain. <acct-file /var/log/pmta/acct
<log-file /var/log/pmta/panic.log> level panic </log-file> Start with conservative throttles
<source 127.0.0.1> bounce-handler bounces@example.com </source> Sample bounce script:
pmta check config # Validate syntax pmta reload # Graceful reload pmta restart # Full restart tail -f /var/log/pmta/pmta.log PowerMTA is powerful but requires careful tuning. Start with conservative throttles, monitor bounce logs, adjust domain stanzas based on ISP feedback, and use virtual MTAs to separate traffic types. Always test with low volume first, especially for new IPs/domains.
<bounce-handler bounces@example.com> command /usr/local/bin/process-bounce.php max-rcpts 100 </bounce-handler> Add to source: