How do I configure sending limits and queues?

Still have a question, spotted an error, or have a better explanation or a source we should cite?

You've set up your own mail server and suddenly you're getting throttled or deferred. Recipient servers are pushing back, and you're not sure why. Most of the time, the answer is in how your MTA (Mail Transfer Agent) is configured around sending limits and queue behavior.

Recipient mail servers enforce rate limits to protect themselves from floods. If you open 50 simultaneous connections to Gmail and dump thousands of messages, you'll get rate-limited or blocked. Your MTA's job is to be a polite guest: space out connections, don't overwhelm any single destination, and back off gracefully when told to wait.

Connection limits. In Postfix, smtp_destination_concurrency_limit controls how many simultaneous connections open to any single destination. The default is 20, but 5 to 10 is more sensible for most destinations. A lower number means slower delivery, but far fewer throttle responses.

Message rate delays. smtp_destination_rate_delay adds a pause between messages to the same destination within a connection. Setting this to a few seconds smooths out delivery spikes that can trigger spam filters.

Queue lifetime. maximal_queue_lifetime controls how long Postfix tries to deliver a message before bouncing it back. Five days is the RFC-standard default and it's a reasonable choice. Too short and you'll lose messages that would have delivered with patience. Too long and your queue grows with genuinely undeliverable mail.

Retry intervals and exponential backoff. minimal_backoff_time and maximal_backoff_time define how long Postfix waits before retrying failed deliveries. Exponential backoff means the wait gets longer with each failure: start with 5 minutes, then 10, then 30, then a few hours. This mimics what major ESPs do and is much more respectful of recipient server capacity than hammering every 60 seconds.

A solid starting point for Postfix:

  • smtp_destination_concurrency_limit = 5
  • smtp_destination_rate_delay = 2s
  • maximal_queue_lifetime = 5d
  • minimal_backoff_time = 300s
  • maximal_backoff_time = 4000s

These aren't magic numbers. You'll tune them based on your volume, your sending domains, and how your bounce handling is set up. Watch your mail logs as you go. If you're seeing consistent deferrals from one provider, it's usually a sign to reduce concurrency or increase delays to that destination specifically.

Contributors

Who worked on this answer

Every name links to their profile. Every company links to their site. Real people, real accountability.

Ask an AI · tailored to your setup

Help me tune my mail server configuration

I'm running a self-hosted mail server using Postfix / Exim / other MTA. My current sending volume is X emails per day. I'm experiencing [throttling / high bounce rates / deferrals from specific providers / queue buildup]. My current settings are: paste relevant config or describe what you've set. Help me figure out the right sending limits and queue configuration for my situation.

Edit the yellow boxes, then send to the AI of your choice.