domain-mapping aol.com { max-smtp-out 6 max-msg-rate 4000/h max-conn-per-domain 3 idle-timeout 120s }
# 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.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
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 }
virtual-mta bulk-low-priority smtp-service outbound source-ip 192.0.2.30 max-smtp-out 5 max-msg-rate 5000/h throttle-delay 100ms # Inject delay per message virtual-mta Outbound SMTP Service --------------------------- smtp-service outbound type outbound max-smtp-out 100 # Global cap across all vMTAs max-msg-rate 100000/h max-conn-per-domain 20 bounce-handler http://localhost:8080/bounce # HTTP bounce processor feedback-loop-handler http://localhost:8080/fbl use-starttls yes require-tls false dns-timeout 15s resolve-command /usr/bin/dig +short smtp-service --------------------------- Domain & ISP Specific Rules --------------------------- Fine-tune for major receivers to avoid rate limits and blacklisting. domain-mapping * { # Default for all domains max-smtp-out 10 max-msg-rate 10000/h max-conn-per-domain 5 throttle-startup 10 throttle-inc-interval 10s }
source-address 192.0.2.20 virtual-mta gmail-pool source-address
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
domain-mapping aol.com { max-smtp-out 6 max-msg-rate 4000/h max-conn-per-domain 3 idle-timeout 120s }
# 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.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
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 }
virtual-mta bulk-low-priority smtp-service outbound source-ip 192.0.2.30 max-smtp-out 5 max-msg-rate 5000/h throttle-delay 100ms # Inject delay per message virtual-mta Outbound SMTP Service --------------------------- smtp-service outbound type outbound max-smtp-out 100 # Global cap across all vMTAs max-msg-rate 100000/h max-conn-per-domain 20 bounce-handler http://localhost:8080/bounce # HTTP bounce processor feedback-loop-handler http://localhost:8080/fbl use-starttls yes require-tls false dns-timeout 15s resolve-command /usr/bin/dig +short smtp-service --------------------------- Domain & ISP Specific Rules --------------------------- Fine-tune for major receivers to avoid rate limits and blacklisting. domain-mapping * { # Default for all domains max-smtp-out 10 max-msg-rate 10000/h max-conn-per-domain 5 throttle-startup 10 throttle-inc-interval 10s }
source-address 192.0.2.20 virtual-mta gmail-pool source-address
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