How do PowerMTA's retry-after, max-connect-rate, max-smtp-out, max-msg-per-connection, and max-msg-rate directives work?
Summary
What email marketers say11Marketer opinions
Email marketer from EmailGeeks Forum notes that `max-smtp-out` should be tuned based on the number of IPs in your sending pool. Having a high `max-smtp-out` with only a few IPs can lead to those IPs being quickly blacklisted. Recommends maintaining a balance between the number of IPs and the maximum concurrent connections.
Email marketer from Reddit shares that setting a very low `retry-after` value (e.g., less than 10 minutes) can be counterproductive and may lead to being greylisted or temporarily blocked by some ISPs. Recommends starting with a longer interval and adjusting based on observed behavior.
Email marketer from MailerQ Documentation explains that a lower `max-msg-per-connection` value can improve deliverability by distributing messages more evenly across connections, making it harder for recipient servers to identify and block sending patterns. However, setting it too low can increase overhead due to frequent connection teardowns.
Email marketer from ReturnPath Blog says that `max-msg-rate` should be aligned with the reputation of your sending IPs and the policies of the receiving domains. Suddenly increasing the `max-msg-rate` without warming up the IPs can damage your sender reputation and lead to deliverability issues.
Email marketer from StackOverflow advises using `max-connect-rate` carefully, especially when sending to large providers like Gmail or Yahoo. Opening too many connections too quickly can trigger rate limiting. Suggests monitoring connection success rates and adjusting the rate accordingly.
Marketer from Email Geeks explains that `max-connect-rate` sets the maximum number of connections opened to a domain over a specified time period. For example, `max-connect-rate 5/h` would open no more than 5 connections to the domain in an hour.
Email marketer from Sendgrid Blog shares how managing connection limits can help prevent exceeding concurrent connection limits set by the recipient's mail server. It helps with managing deliverability and overall email strategy, by being careful to balance the need to send emails quickly with your sender reputation.
Marketer from Email Geeks suggests updating the `retry-recipients-after` value, as it specifies the minimum recipient-level retry interval, if the goal is to retry a deferral after a short interval.
Email marketer from MXToolbox explains that setting `retry-after` to a very short interval, such as one minute, is often seen as aggressive and can lead to temporary blocks by recipient servers. Suggests using a more conservative approach and increasing the interval if necessary based on server responses.
Marketer from Email Geeks explains how the `max-smtp-out`, `max-msg-per-connection`, `max-msg-rate`, and `max-connect-rate` parameters are interconnected in PowerMTA. `max-smtp-out` controls connections per IP per domain, `max-msg-per-connection` dictates messages per connection, `max-msg-rate` defines messages per time slot, and `max-connect-rate` is the maximum connections opened for the period.
Marketer from Email Geeks clarifies that the scope of `max-smtp-out` determines its effect. It can be applied to `<domain>` or `<virtual-mta>` to limit the total number of open connections.
What the experts say2Expert opinions
Expert from Word to the Wise explains that poorly managed connections, indicated by excessive `max-connect-rate` and `max-smtp-out` settings, are the most common cause of throttling. The rate limits are there to protect their infrastructure, so going over the limit will cause problems.
Expert from Spam Resource explains that setting the `retry-after` value too low, especially when combined with aggressive connection rates, can easily trigger rate limiting and temporary blocks from receiving mail servers. This is because it appears as an attempt to overwhelm the server.
What the documentation says6Technical articles
Documentation from PowerMTA indicates that `max-msg-per-connection` defines the maximum number of messages that can be sent over a single SMTP connection before the connection is closed and reopened. This directive helps in mitigating issues related to long-lived connections and ensures better load balancing.
Documentation from SparkPost explains that `retry-after` specifies the minimum time interval before retrying delivery to a domain that has previously returned a temporary failure. It helps manage the sending rate and avoid overwhelming receiving servers. The value is specified in minutes.
Documentation from Port25 Solutions, Inc. states that `max-connect-rate` limits the number of connections opened to a domain within a given time period. This is useful for complying with recipient domain connection limits and preventing throttling. It is defined as connections per hour or minute.
Documentation from Amazon SES explains how concurrency affects message delivery and the importance of managing concurrent connections to prevent exceeding account limits. A proper configuration ensures the server doesn't get overloaded while messages are being sent and retried after a failure.
Documentation from PowerMTA details that `max-msg-rate` limits the number of messages sent per unit of time (e.g., per minute or per hour). This is important for controlling the sending speed and avoiding being flagged as a spammer by recipient servers. Setting an appropriate `max-msg-rate` is critical for maintaining a good sender reputation.
Documentation from PowerMTA User Guide explains that `max-smtp-out` sets the maximum number of simultaneous SMTP connections that PowerMTA will maintain. This parameter is crucial for managing resource usage and avoiding server overload. Limiting `max-smtp-out` can prevent resource exhaustion and improve overall stability.