PowerMTA Guide

PowerMTA Configuration File Structure

Understand global directives, source blocks, domain blocks and includes.

Practical guideUpdated July 2026By Ilirjan Trushilla
This guide is designed as a production checklist. Test changes on a staging server and keep a working configuration backup.

Overview

Understand global directives, source blocks, domain blocks and includes. The safest approach is to make one change at a time, validate syntax, reload the service, and then review logs and delivery results.

Configuration example

<virtual-mta vmta1>
    smtp-source-host 192.0.2.10 mail1.example.com
</virtual-mta>

<domain hotmail.com>
    max-smtp-out 1
    max-msg-per-connection 1
    retry-after 2h
    bounce-after 144h
</domain>

Recommended procedure

  1. Document the current working configuration and relevant IP, DNS and authentication values.
  2. Confirm that every referenced file, key, hostname and source IP exists.
  3. Apply the smallest possible change and run the service configuration validator.
  4. Reload rather than restart when the software supports safe reloads.
  5. Watch logs, queue growth, SMTP responses and provider-specific behavior.

Common mistakes

Verification

systemctl status postfix || systemctl status pmta
ss -lntp
tail -f /var/log/maillog
# Send a controlled test and inspect the complete received headers.

Production notes

Delivery settings should be based on current response data, list quality and reputation. A value that works for one server or ISP can be unsafe for another. Prefer conservative defaults and measured increases.

Related PowerMTA guides

Search Trushilla Documentation