In the realm of Message Transfer Agents (MTAs), PowerMTA, also known as PMTA, stands out as a premier commercial option. Its reputation is underscored by its adoption within renowned Email Service Providers (ESPs) and large enterprises such as MailChimp, Microsoft, IBM, and more.
Need assistance with the installation and configuration of PowerMTA? Feel free to get in touch with us at https://ipwarmup.com/powermta
Continuing their unwavering dedication, the team behind PowerMTA has introduced the latest iteration, v5.5r5, which was made available on June 23, 2023. Let's delve into the enhancements that have been implemented since the initial v5.5r1 release:
2023-06-23: released build 5.5r5 - introduced a new record field (numRetries) to "d", "b" and "t" record types in accounting files which gives visibility into the number of retry attempts made for a recipient before it is delivered or bounced; - introduced the "<domain>.bounce-category-patterns" directive to customize bounce category patterns on a recipient domain basis, for flexibility in categorizing errors specific to each ISP. - introduced the "<domain>.verp-default" directive to provide flexibility in configuring VERP at the domain level since some mailbox providers may not like VERP and some others may throttle delivery speed based on the MAIL FROM address; - introduced "<domain>.enable-tq-record-for-proxy-failure" directive to provide more visibility into errors connecting to the proxy by logging them as a "tq" record in accounting files; - added the ability to customize Signals tracking domains on a virtual MTA or virtual MTA pool basis; - extended "pmtastats" command to analyze files compressed in gzip format; - fixed some edge cases with MX rollups; - improved the security of the "/configFile" API to allow access only to PowerMTA configuration files; - optimized performance of the "<virtual-mta>.max-smtp-out" directive implementation; - other small improvements and fixes; 2023-04-14: released build 5.5r4 - improved Transmissions API to make it easier to specify attachments and AMP content in email injections; - added support for running PowerMTA on ARM-based architectures which generally have better price-performance ratios than their x86 counterparts. PowerMTA 64-bit ARM RPMs can be found on the download portal; On ARM, please ensure "thread-reuse" is disabled for best performance; - introduced "<virtual-mta>.suppression-lists" directive to suppress recipients on a per-Virtual MTA or Virtual MTA pool basis. This allows you to make your suppression lists independent of the "<source>" settings; - added ability to store TLS listener certificate, private key, and the associated password in Vault for improved security. See the documentation for the global "smtp-server-tls-certificate" directive and the "tls-certificate" directive under the "<smtp-listener>" and "<transmissions-api-listener>" tags for more information; - added the ability to extract the contents of desired headers from the inbound message and include them in the X-MSYS-API header of the outbound message. This could be useful for tracking purposes when relaying messages to SparkPost, e.g., by including Message-ID header in the metadata; - introduced "<source>.replace-message-id-header" directive to control whether PowerMTA should replace an existing Message-Id header, for greater flexibility; - extended the "<smtp-pattern-list>.defer-job" action to apply to all SMTP replies rather than just recipient-level 4xx replies, for greater flexibility in adapting to differences in responses from various ISPs with regard to job-level errors; - added the ability to start PowerMTA and PowerMTA web monitor as the non-root "pmta" user on Linux for improved security. As part of this change, the location of the PowerMTA and PowerMTA web monitor PID files has moved to "/var/lib/pmta/run" directory - if you have any tools (e.g., for monitoring PowerMTA processes) configured to rely on the PID files, please review and tweak your setup as needed; - added the IP address used by the proxy for email delivery to the "queueDetail" REST API response for extra visibility; - fixed a crash while processing an SMTP reply which returns PCRE_ERROR_MATCHLIMIT error when matching specific patterns (which could cause intensive matching recursions) in the "smtp-pattern-list"; - fixed a race condition that could prevent seeding from taking place when using the "Automatic Inline Seeding" feature; - upgraded to OpenSSL 1.1.1t, to get the latest bug fixes; - other small improvements and fixes; 2023-04-01: released build 5.5r3 - fixed a security vulnerability with the web monitor's "/getFile" API, which sometimes could allow access to arbitrary files on the server; 2022-10-01: released build 5.5r2 - added support for submission of compressed request payload with Transmissions API. Also, introduced "<transmissions-api>.max-message-size" directive to specify the maximum size allowed for the request payload (defaults to 100MB); - updated User's Guide with instructions for setting up PowerMTA within Docker containers. This feature is experimental; - extended "virtual-mta-pool" syntax to support percentage-based routing for virtual MTAs. This simplifies the configuration and offers more flexibility for balancing the load between the various virtual MTAs within the virtual MTA pool; - extended "<domain>.reroute-to-virtual-mta" directive syntax to take an optional parameter to specify the time interval after which the reroute becomes effective. This could be useful to automatically reroute recipients that stay in a queue for a long time to another virtual MTA to have a better chance of getting delivered; - introduced "<source>.require-starttls" directive to enforce encryption with STARTTLS for inbound connections to improve security; - fixed crash while processing a very deeply nested HTML when "<signals>.engagement-tracking" is set to "sparkpost"; - other small improvements and fixes; 2022-06-03: released build 5.5r1 - added support for automatic inline seeding to help monitor the health of your email sending campaigns; - added ability to view additional deliverability metrics when using Signals. If you currently use Signals, make sure the API key has "Account: Read" permissions before upgrading to PowerMTA 5.5; - improved Transmissions API to allow variable substitution and submission of email content in "inline format". This allows you to submit the contents of your email in JSON which includes the subject, headers, and the text/HTML contents for the body of your email. PowerMTA will then compose a well-formed MIME-formatted email message for delivery; - added support for metrics-based monitoring of PowerMTA with Prometheus; - introduced a new REST API to manage configuration for "suppression-list"(s); - added support for TLS certificate chain based authentication of SMTP users; - added support for LDAP-based authentication of SMTP users via HashiCorp Vault; - introduced "...-tls-min-version" and "...-tls-max-version" directives to control what TLS protocol versions are allowed. This should be preferred over the existing "...-tls-allow-..." directives which are now considered deprecated; - introduced "...-tls-cipher-server-preference" directives to control whether to use server’s preferences when choosing a cipher during a TLS connection; - introduced a new "<include-config>" tag to support fetching configuration from external sources through HTTP or HTTPS with customized HTTP headers; - added "log-hires-timestamp" to configure millisecond precision for messages in log files; - added a new "greylist" action to "smtp-pattern-list" to prioritize delivery of greylisted recipients whenever the queue exits retry mode; - added a new "defer-job" action to "smtp-pattern-list" to delay delivery of all recipients belonging to a job within a queue; - made hostname in "<proxy>.client" directive optional and use the virtual MTA's "host-name" as the default; - improved overall performance and reduced memory usage for Linux builds; - upgraded to OpenSSL 1.1.1n, to get the latest bug fixes; - other small improvements and fixes;
Feel free to share your thoughts about PowerMTA in the comments section!