Updated: 28 September 2026 · Applies to: Postfix 3.8 (Ubuntu 24.04) and 3.10 (Ubuntu 26.04)

Large mailbox providers accept only so much mail from a new or busy address per minute. When you send faster, they answer with a temporary error ("try again later") or refuse the connection. Postfix can slow itself down per receiving domain and retry later. This guide shows the settings, how to set limits for individual providers, and how to read deferrals.

How Postfix limits speed

Postfix works with "destinations" (usually the recipient domain, for example gmail.com) and "transports" (the delivery services in master.cf, such as out1). These settings act per destination and per transport:

  • TRANSPORT_destination_concurrency_limit: how many parallel deliveries to the same destination. The default is 20.
  • TRANSPORT_destination_rate_delay: the pause between deliveries to the same destination. The default is 0 (no pause).
  • TRANSPORT_destination_recipient_limit: recipients per delivery. The default is 50.
  • TRANSPORT_destination_concurrency_failed_cohort_limit: how many failures make Postfix treat a destination as dead. Set it to 10 or more when you use a rate delay.

Replace TRANSPORT with the name of your transport, for example out1. The delay is enforced by the queue manager, and its timers restart when Postfix is reloaded or stopped.

1. A general limit for one transport

out1_destination_concurrency_limit = 5
out1_destination_rate_delay = 1s
out1_destination_recipient_limit = 10
out1_destination_concurrency_failed_cohort_limit = 10

This allows at most one delivery per second to a domain, with up to 10 recipients each, so up to 10 recipients per second, about 36,000 per hour, to one provider. Reduce the numbers when a provider defers your mail.

2. Different limits for different providers

Create a second transport for the big providers that uses the same address and tighter limits. In master.cf:

slow1  unix  -       -       y       -       -       smtp
  -o smtp_bind_address=203.0.113.11
  -o smtp_helo_name=mail1.example.com
  -o smtp_bind_address_enforce=yes

In main.cf:

slow1_destination_concurrency_limit = 2
slow1_destination_rate_delay = 5s
slow1_destination_recipient_limit = 5
slow1_destination_concurrency_failed_cohort_limit = 10
transport_maps = hash:/etc/postfix/transport

In /etc/postfix/transport send those domains through the slow transport:

gmail.com          slow1:
googlemail.com     slow1:
yahoo.com          slow1:
outlook.com        slow1:
hotmail.com        slow1:
sudo postmap /etc/postfix/transport
sudo systemctl reload postfix

Both transports use the same address, so the reputation stays with that address. Only the speed differs. Note that transport_maps takes priority over the per-sender transports of How to give each domain or customer its own sending IP address in Postfix?: mail to these providers would all leave from this one address. If you use several sending addresses, create one slow transport per address and choose it in a per-sender setup instead, or ask us to design it for you.

3. Read the deferrals

sudo journalctl -t postfix/smtp --since "1 hour ago" | grep "status=deferred" | tail

Typical messages are "421 4.7.0 ... try again later", "450 4.2.1 ... temporarily rate limited" or "Too many connections". They mean: slow down. Postfix keeps the mail and retries automatically for up to maximal_queue_lifetime (5 days by default).

4. Do not fight deferrals with more speed or other addresses

  • Lower concurrency and increase the rate delay for that provider.
  • Keep the mail on the same address. Moving the same stream to another address to get around a limit gives the new address no history and shows the pattern to receivers.
  • Look at the cause: a sudden burst, a rising complaint rate, or missing authentication (Gmail, Yahoo and Microsoft requirements for bulk senders: a checklist).

5. Limit abuse on your own server

Postfix also has settings that limit how much a client may send to your server, for example smtpd_client_message_rate_limit. Its purpose is to limit abuse, not to shape legitimate traffic (How to protect your mail-sending server from misuse?). Use the delivery limits above to control your sending speed.

Frequently asked questions

What numbers should I use?
Start low, as in How to warm up a new sending IP address step by step?, and raise the limits while deferrals stay rare.

Does a deferral mean I am blocked?
Not necessarily. It is a request to try later. Repeated permanent errors (5xx) with reputation text are different: see What to do when your IP address is on a blocklist or your mail is rejected?.

Source: Postfix configuration parameters.

Need a dedicated server, more IP addresses, or a hand with the setup?

Prefer a hand with the setup? Our engineers can do it for you: Hire an Expert, or use our on-demand server management.

Was this answer helpful? 0 Users Found This Useful (0 Votes)