feedback-loop { process-fbl yes fbl-address fbl@example.com fbl-action remove # Auto-suppress complained addresses fbl-suppression 90d } IP Reputation & Blacklist Checks --------------------------- Note: Requires subscription to a DNSBL service. dnsbl zen.spamhaus.org { reject-message "Your IP is blacklisted - see spamhaus.org" reject-on-failure yes timeout 5s } Whitelist trusted IPs (e.g., internal mail relays) access-rule whitelist-intranet allow 10.0.0.0/8 access-rule whitelist-intranet allow 172.16.0.0/12 --------------------------- Logging & Monitoring --------------------------- log-format extended { format "[%d] %t %r %s %p %i %b %e %c %h" } log-domain-stats { interval 1h file /var/log/pmta/domain-stats.csv domains all } log-connections { file /var/log/pmta/conn.log max-size 100M rotations 10 } log-errors { file /var/log/pmta/errors.log level warn } --------------------------- Resource Limits --------------------------- smtp-server { max-connections 500 max-clients 200 queue-size 500000 memory-limit 2G disk-limit 50G } --------------------------- Queue Management --------------------------- queue { max-size 2000000 max-age 7d delivery-interval 5s retry-interval 5m,15m,30m,1h,2h,4h,8h,12h,1d dead-letter-expire 30d tempfail-retries 8 } --------------------------- Source Binding (Multi-IP Sending) --------------------------- source-address 192.0.2.10 # This IP belongs to hotmail-pool virtual MTA # and also used for generic outbound source-address
(For High-Volume Production Email Delivery) # ------------------------------------------------------------------- # PowerMTA Configuration File - Sample for High-Volume Email Delivery # ------------------------------------------------------------------- # Version: 4.5+ # Purpose: Production-ready configuration with deliverability tuning # Notes: Adjust paths, IPs, domains, and resources to your environment. # ------------------------------------------------------------------- --------------------------- Global Process Directives --------------------------- process-id-file /var/run/powermta/pmta.pid spool-directory /var/spool/pmta log-directory /var/log/pmta max-smtp-out 100 # Max concurrent outbound connections (all MTAs) max-errors-per-domain 10 # Failures before marking domain dead max-errors-per-recipient 3 domain-error-expiration 30m # Retry dead domain after 30 minutes recipient-error-expiration 30m --------------------------- SMTP Service (Inbound) --------------------------- smtp-service port 25 access-source config # Use IP-based rules below access-rule allow 127.0.0.1 access-rule allow 192.168.1.0/24 access-rule deny all
dkim-sign domain example.org default dkim-keyfile /etc/pmta/dkim/example.org/default.pem dkim-identity @example.org dkim-sign dkim-sign-policy * { sign-control * dkim-sign(example.com) # Default } --------------------------- Authentication (SPF, Return-Path) --------------------------- auth-domain example.com # Bounce handling domain (different from sending domain) bounce-domain bounce.example.com bounce-address bounces@bounce.example.com spf-identity mfrom spf-pass-action none spf-fail-action tag auth-domain sample powermta configuration file
domain-mapping *.edu { max-smtp-out 2 max-msg-rate 500/h throttle-delay 200ms } DKIM Signing --------------------------- dkim-sign domain example.com selector1 dkim-keyfile /etc/pmta/dkim/example.com/selector1.pem dkim-identity @example.com dkim-headers From:To:Subject:Date:Message-ID dkim-signature-expiration 7d dkim-sign
# Custom throttles for ISP reputation domain-throttle hotmail.com max-msg-rate 10000/h max-conn 15 domain-throttle outlook.com max-msg-rate 10000/h max-conn 15 domain-throttle live.com max-msg-rate 8000/h max-conn 10 virtual-mta feedback-loop { process-fbl yes fbl-address fbl@example
domain-mapping yahoo.com { max-smtp-out 8 max-msg-rate 5000/h max-conn-per-domain 4 use-starttls yes require-tls false rcpt-to-nxdomain-limit 3 }
auth-domain default { bounce-domain bounce.local bounce-address bounces@bounce.local } Bounce & Feedback Loop Processing --------------------------- bounce-processing { process-bounces yes bounce-return-top 50 # Include up to 50 original headers detect-loop yes max-bounce-rate 10% # If >10% bounce, throttle sending bounce-suppression 7d # Suppress addresses bouncing for 7 days } sample powermta configuration file
domain-mapping aol.com { max-smtp-out 6 max-msg-rate 4000/h max-conn-per-domain 3 idle-timeout 120s }