Powermta Configuration Guide Apr 2026
openssl genrsa -out /etc/powermta/keys/example-dkim.key 2048 openssl rsa -in example-dkim.key -pubout -out example-dkim.pub # Add public key to DNS: mail._domainkey TXT "v=DKIM1; k=rsa; p=..." <domain example.com> bounce-domain bounces.example.com # VERP bounces spf-identity mfrom # Use MAIL FROM for SPF </domain> 6.3 IP Restrictions (Inbound Relay) <accepted-connect 127.0.0.1> allow-submission yes require-auth no </accepted-connect> <accepted-connect 10.0.0.0/8> allow-submission yes require-auth yes auth-plain /etc/powermta/passwd </accepted-connect> 7. Logging & Monitoring 7.1 Delivery Log Format log-format-extended "mail.log" "%ts %d %r %s %S %T %p %b %B" # Fields: timestamp, domain, recipient, status, size, time, IP, bounce, message-id 7.2 Bounce Processing bounce-log /var/log/powermta/bounce.log bounce-category-log /var/log/powermta/bounce-category.log permanent-bounce-after 7d # Suppress after 7 days of soft bounces 7.3 HTTP API & SNMP http-mgmt-port 8080 http-mgmt-interface 0.0.0.0 http-mgmt-auth /etc/powermta/htpasswd snmp-port 161 snmp-community public
adaptive-max-smtp-out yes adaptive-soft-bounce-limit 10 # Reduce conns if 10 soft bounces/min adaptive-backoff-interval 5m <source-pool 192.168.1.0/28> # 16 IPs random-ip yes max-smtp-out 1000 </source-pool> <virtual-mta rotating> source-pool 192.168.1.0/28 dns-rotate yes </virtual-mta> 9. Common Pitfalls & Solutions | Problem | Likely Cause | Fix | |---------|--------------|-----| | All mail stuck in queue | DNS resolution fails | Check /etc/resolv.conf , increase dns-timeout | | High deferral rate | Throttling too aggressive | Increase max-smtp-out or max-msg-rate | | Bounce rate >10% | Poor list quality | Implement bounce suppression list | | PMTA stops accepting mail | Spool full or max-queue-size reached | Move spool to larger disk, increase max-queue-size | | Slow injection from MUA | No max-smtp-in limit | Set max-smtp-in 5000 | 10. Example: Production-Ready Config Snippet # /etc/powermta/powermta.conf smtp-port 25 max-smtp-in 5000 max-smtp-out 2000 queue-interval 2s max-delivery-attempts 6 memory-pool-max 4G <source 203.0.113.10> virtual-mta marketing max-smtp-out 200 use-starttls yes </source>
<source 192.168.1.10> # Warm-up schedule (day 1-30) max-msg-rate 100/h max-smtp-out 5 <schedule warmup> from 00:00 to 23:59 for 1d max-msg-rate 100/h from 00:00 to 23:59 for 3d max-msg-rate 500/h from 00:00 to 23:59 for 7d max-msg-rate 2000/h from 00:00 to 23:59 for 14d max-msg-rate 10000/h from 00:00 to 23:59 for 30d max-msg-rate 30000/h </schedule> </source> 6.1 DKIM Signing <domain example.com> dkim-sign yes dkim-selector mail dkim-key /etc/powermta/keys/example-dkim.key dkim-headers "From:Subject:Date:To" </domain> Generate key: powermta configuration guide
Start & enable:
systemctl start powermta systemctl enable powermta | File | Purpose | |------|---------| | /etc/powermta/powermta.conf | Main configuration | | /etc/powermta/config.d/ | Include directory (modular configs) | | /etc/powermta/license.key | License file | | /var/log/powermta/ | Logs (delivery, bounce, error) | | /var/spool/powermta/ | Queue spool (persistent) | 4. Basic Configuration Directives 4.1 Global Settings # /etc/powermta/powermta.conf smtp-port 25 http-mgmt-port 8080 http-mgmt-interface 0.0.0.0 max-smtp-in 1000 max-smtp-out 1000 smtp-greeting "PowerMTA ESMTP" Queue management max-queue-size 10M # Maximum spool size queue-interval 5s # Dequeue sweep frequency max-delivery-attempts 5 # Per recipient 4.2 Source (Binding) IPs Define which IPs PMTA will use to send mail. openssl genrsa -out /etc/powermta/keys/example-dkim
curl -u user:pass http://pmta-server:8080/api/v1/stats 8.1 Memory & I/O queue-shards 16 # Reduce lock contention memory-pool-max 2G spool-buffer-size 512k max-message-size 50M 8.2 Adaptive Throttling Automatically slow down when remote servers defer.
log-format-extended "/var/log/powermta/delivery.log" "%t %d %S %p %r" bounce-log "/var/log/powermta/bounce.log" log-format-extended "/var/log/powermta/delivery
<domain gmail.com> max-smtp-out 20 # Concurrent connections to Gmail max-msg-rate 1000/h # Messages per hour use-starttls yes require-starttls no </domain> <domain yahoo.com> max-smtp-out 15 max-msg-rate 800/h </domain>
http-mgmt-port 8080 http-mgmt-interface 127.0.0.1 Always validate config before reload:
<virtual-mta marketing> source 192.168.1.10 max-smtp-out 50 dns-timeout 30 bounce-log /var/log/powermta/bounce-marketing.log </virtual-mta> <virtual-mta transactional> source 192.168.1.11 max-smtp-out 200 bounce-log /var/log/powermta/bounce-transactional.log </virtual-mta> 5.1 Domain-Specific Throttling Prevent overloading a single domain (e.g., Gmail, Yahoo).
I do love how it went from “potentially queer culture” because Gaiman always said we could ship this two the way we want, to become UNASHAMED queer. I also loved the use of “partner”, “spouse” and “they” as singular pronoun.
I completely understand why there wasn’t an “I love you”, it would be too soon and too painful. Their relationship didn’t reach this point yet so I think it’d be rushed.
Anyway great review!
LikeLiked by 2 people
Right? It got me by surprise in the most delightful way. Everything about this season was perfect apart from the ending. I’m still crying about it. Thank you for your comment!
LikeLiked by 2 people
So looking forward to this!
Season 1 was so well done- from the opening credits to the intricate mix of tongue in cheek humor and well…the apocalypse….
I think long term friendships do exist- there is love between the two leads for sure. I’ll have to read your article on that issue.
LikeLiked by 2 people
The two leads definitely love each other. I was convinced before, but not there’s no denying it. Great season.
LikeLiked by 1 person