How to Install PowerMTA on AlmaLinux 9

Learning to install PowerMTA AlmaLinux is the fastest way to get a high-performance, self-hosted email server running on Red Hat's most popular free clone. PowerMTA is the industry-standard mail transfer agent used by high-volume senders for its unmatched deliverability controls, delivery speed, and per-domain reputation management. AlmaLinux 9, with its RHEL binary compatibility and long support lifecycle, makes an ideal, license-free foundation. In this step-by-step tutorial, you will prepare a fresh AlmaLinux 9 server, install the required dependencies, install the PowerMTA RPM package, configure pmta.conf, activate your license, and send your first test email — ending with a production-ready setup.

Prerequisites Before You Install PowerMTA AlmaLinux

Before touching the installer, make sure your environment is correct. PowerMTA is resource-hungry and port-sensitive, so cutting corners here causes most failures later.

  • A clean AlmaLinux 9 VPS with root access. At least 2 GB RAM and 1 vCPU for light volume; 4+ GB for real campaigns. Because PowerMTA must speak SMTP on TCP port 25, your provider must not block it — many clouds (AWS, DigitalOcean, Vultr) block port 25 by default, so choose a sender-friendly host. We recommend Contabo or RackNerd for cheap VPS plans with open port 25.
  • A domain name with DNS access. You will need to create an A record, an MX record, and later SPF, DKIM, and DMARC records for good deliverability.
  • Reverse DNS (PTR) pointing at your server's hostname. Most providers let you set this in their control panel; without it, Gmail and Outlook will penalize your mail.
  • A valid PowerMTA license. PowerMTA is commercial software from Port25/Acquia. The installer runs in a limited demo mode without a license file (license.xml), and features like VirtualMTA pools are license-gated.

Step 1 — Update the System and Install Dependencies

SSH into your server as root and bring the system up to date first:

dnf update -y
dnf install -y wget telnet perl openssl-libs ca-certificates

PowerMTA ships as a self-contained RPM, so dependencies are minimal. The telnet client is useful for the SMTP test at the end, and openssl lets you verify certificates and DKIM keys later. Also disable the firewall temporarily so it can't interfere with your first test (you will lock it down properly in the final step):

systemctl stop firewalld
systemctl disable firewalld

Step 2 — Download and Install the PowerMTA RPM

PowerMTA for AlmaLinux is distributed as an RPM built for RHEL 9-compatible systems. Download the package link from your Port25 customer portal (or the URL provided with your license purchase) and install it:

wget -O PowerMTA.rpm "https://your-license-download-url/PowerMTA-6.0r1.x86_64.rpm"
dnf install -y ./PowerMTA.rpm

The package installs the pmta binary, the configuration skeleton at /etc/pmta/config, the license directory, and the systemd service. Verify the installation:

pmta --version
systemctl status pmta

Step 3 — Place Your License and Basic pmta.conf Setup

PowerMTA refuses to start as a production MTA without a valid license. Copy your license.xml into the license directory:

mkdir -p /etc/pmta/license
cp license.xml /etc/pmta/license/
chown pmta:pmta /etc/pmta/license/license.xml
chmod 600 /etc/pmta/license/license.xml

Now open /etc/pmta/config and set the essentials. PowerMTA's config is one long file, but you only need these blocks for a working single-server setup:

host-name mail.yourdomain.com

smtp-listener 0/0:25
smtp-listener [::]:25

<source 0/0>
    always-allow-relaying yes   # restrict this to your IPs in production
    process-x-virtual-mta yes
</source>

<domain *>
    max-smtp-out 20
    use-starttls yes
</domain>

The host-name is the FQDN other mail servers will see in your HELO/EHLO greeting — it must match your PTR record. The <domain *> block applies default delivery behavior globally; tune max-smtp-out (concurrent connections per destination domain) once you know your list size.

Configuring VirtualMTAs for IP Reputation

VirtualMTA pools are PowerMTA's killer feature: each pool binds a separate IP and queue, letting you isolate transactional mail, marketing campaigns, and client accounts. Add a VirtualMTA under the <source> block or globally:

<virtual-mta pmta-1>
    smtp-source-host 198.51.100.10 mail.yourdomain.com
</virtual-mta>

<domain *>
    route pmta-1
</domain>

Replace 198.51.100.10 with an IP assigned to your server. With multiple IPs you can warm each one independently and protect a high-value sender from a risky one.

Step 4 — Configure DNS Records

Email authentication is not optional anymore — Gmail, Outlook, and Yahoo reject or spam-folder mail from servers missing these records. In your domain's DNS zone, add:

  • A record: mail.yourdomain.com → your server IP
  • MX record: yourdomain.com → mail.yourdomain.com
  • SPF (TXT): v=spf1 ip4:198.51.100.10 -all
  • DKIM: generate a key with pmta generate-dkim (or opendkim-genkey), then publish the TXT record PowerMTA gives you and reference the key in pmta.conf with dkim-sign yes
  • DMARC (TXT at _dmarc): v=DMARC1; p=none; rua=mailto:[email protected] — move to quarantine/reject once SPF and DKIM pass consistently

Step 5 — Enable the Systemd Service and Start PowerMTA

Enable the service so it survives reboots, then start it:

systemctl enable --now pmta
systemctl is-active pmta

Check the log for license and config errors — PowerMTA is strict, and a single typo in pmta.conf prevents startup:

tail -f /var/log/pmta/log

You should see the license load successfully and the SMTP listeners bind to port 25. If it fails, run pmta check-config to validate your configuration file.

Step 6 — Test Your Install PowerMTA AlmaLinux Setup

Send your first message through the local SMTP listener with telnet:

telnet localhost 25
ehlo mail.yourdomain.com
mail from:<[email protected]>
rcpt to:<[email protected]>
data
Subject: PowerMTA AlmaLinux test

This is the first test email from my PowerMTA install on AlmaLinux 9.
.
quit

Then inspect delivery in the accounting and log files:

pmta show queues
tail /var/log/pmta/log | grep delivered

If the message leaves the queue and shows as delivered, your install is healthy. Check a seed inbox at Gmail and inspect the “Show original” headers: you want spf=pass, dkim=pass, and dmarc=pass.

Post-Install Security and Hardening

A fresh mail server on the public internet gets probed within minutes. Lock it down before sending real volume:

  • Re-enable the firewall with SMTP rules: allow port 25 inbound only from trusted sources plus the general SMTP listener if you accept bounces.
    systemctl enable --now firewalld
    firewall-cmd --permanent --add-service=smtp
    firewall-cmd --permanent --add-service=ssh
    firewall-cmd --reload
  • Restrict relaying. Change always-allow-relaying to no and authorize only your application IPs with relay-address lines — an open relay will get your IPs blacklisted in hours.
  • Add fail2ban or brute-force protection for SSH and SMTP auth attempts.
  • Keep PowerMTA updated. Port25 releases security fixes regularly; watch their announcements and schedule maintenance windows.
  • Monitor blacklists and bounces. A new IP has zero reputation — warm it up gradually (start with a few hundred emails/day to engaged recipients) and watch Postmaster Tools and bounce rates daily.

Key Takeaways

  • To install PowerMTA AlmaLinux, you need a clean AlmaLinux 9 VPS with port 25 open, a licensed PowerMTA RPM, and working DNS records.
  • Install dependencies with dnf, install the RPM, drop in your license.xml, and set host-name, listeners, and <domain *> blocks in /etc/pmta/config.
  • VirtualMTAs let you isolate IPs and reputations — PowerMTA's biggest advantage over Postfix for high-volume sending.
  • SPF, DKIM, and DMARC are mandatory for inbox placement with Gmail, Outlook, and Yahoo in 2026.
  • Always test with telnet first, then warm up new IPs gradually before scaling campaign volume.
  • Never run an open relay — restrict always-allow-relaying and firewall port 25 immediately after installation.

Related Guides

Leave a Comment