emailmarketing.net

Per-Provider Tuning Baselines

Community-maintained per-provider MTA shaping baselines — connection limits, messages per connection, rates, TLS requirements, and automated-throttle rules — from the KumoMTA shaping files, attributed and dated.

Reference7 min read

Who it is for ESP operators

When you configure how your MTA shapes traffic to each destination, you need concrete values to start from. The values below come from the shaping files that the KumoMTA project maintains publicly. There are two files:

  • the policy-extras/shaping.toml file maintained by the vendor, with defaults and the major providers (several sections are marked "provided directly by" the provider);
  • the community/shaping.toml file contributed by the community, with more providers and automation rules driven by bounces.

Fetched 2026-07-20 from the main branch. These values drift as providers change their policies. Treat them as attributed starting points to check against your own deferral data, not as facts about current provider limits. See MTA Delivery Tuning for what each parameter means and how the automation model works.

How to read the tables:

  • MX rollup: limits apply to each receiving MX infrastructure, so all recipient domains that resolve to the same set of MX hosts share one bucket. Provider blocks match by MX suffix. For example, anything with an MX under .google.com or .googlemail.com counts as "google", which covers Gmail and domains hosted on Google Workspace. According to the file's note of 2024-09-03, their MX hostnames resolve to common IP addresses, so they are shaped together.
  • provider_connection_limit vs connection_limit: the provider variant is enforced across the whole provider rollup, and the plain variant applies to each site. Mimecast deliberately uses limits for each site, because each Mimecast site name is a separate regional fleet of MTAs.
  • Where a cell is blank, the global default applies.

Global defaults

Parameter Default
connection_limit 10
max_connection_rate 100/min
max_deliveries_per_connection 100
max_message_rate 100/s
idle_timeout 60 s
data_timeout / data_dot_timeout 30 s / 60 s
enable_tls Opportunistic
consecutive_connection_failures_before_delay 100
remember_broken_tls 3 days

A default automation rule, for all destinations, matches the family of deferral messages that many providers use: Messages from <IP> temporarily deferred, All messages from <IP> will be permanently deferred, has been temporarily rate limited due to IP reputation, Unfortunately, messages from <IP> weren't sent, Server busy. Please try again later from. On a match, it sets max_message_rate = 1/minute and connection_limit = 1 for 90 minutes.

Provider baselines

Provider (MX match) Conn. limit Deliveries per conn. TLS Other
Google (.google.com, .googlemail.com) 5 (provider-wide) 50 Required: Google tempfails and rate-limits injection without TLS consecutive_connection_failures_before_delay = 5
Yahoo (.yahoodns.net), values "provided by Yahoo directly" default (10) 20 default
Microsoft consumer (.olc.protection.outlook.com) 5 (provider-wide) 50 default The consumer, O365 and DANE sets of MX hosts are separate groups of edge servers, shaped separately
Office 365 (.mail.protection.outlook.com) 5 (provider-wide) 50 default
Office 365 DANE (.mx.microsoft) 5 (provider-wide) 50 default DANE left off in the baseline (DNSSEC is not ready at most sites)
Apple iCloud (.icloud.com) 10 (provider-wide) 5 default Note the very low number of deliveries per connection
Comcast (comcast.net), "provided directly by Comcast" 25 1000 Required idle_timeout = 30 s; consecutive_connection_failures_before_delay = 24
Mimecast (.mimecast.com, .mimecast.co.za, .mimecast-offshore.com), "provided directly by Mimecast" 10 per site 100 default For each site, not provider-wide (regional fleets)
mail.com, "provided directly by mail.com" default 100 default
Orange (.orange.fr) 2 (provider-wide) 100 Required
GMX and WEB.DE (.web.de, .gmx.net) (community) 4 20 Required consecutive_connection_failures_before_delay = 5
Yahoo Japan (yahoo.co.jp) (community) 2 20 default max_message_rate = 10/s; a separate fleet of MX hosts from Yahoo itself
Barracuda (.barracudanetworks.com.) (community, dated 2026-03-27) 10 (provider-wide) 15 Required
Netvigator (.netvigator.com.) (community, dated 2026-03-27) 5 (provider-wide) 10 Required
KPN (.kpnmail.nl.) (community) 10 10 Required
Tencent QQ (.qq.com) (community) 4 8 Required
NetEase 163.com (.netease.com) (community) 4 7 RequiredInsecure (TLS forced, but certificates not validated)
Mailgun smarthost (smtp.mailgun.com), "provided directly by Mailgun" for senders relaying through Mailgun 7000 3 default A smarthost, not a mailbox provider

Automated-throttle rules per provider (community-contributed)

The community file adds these adjustments on top of the baselines, in response to bounces. A trigger of N/hr means the rule fires once the response has matched N times in an hour, and every action expires after its duration. For what each response means, see the error codes for Gmail, Yahoo, Microsoft, Apple, Comcast and GMX and WEB.DE.

Provider Response matched (regex, abridged) Trigger Action Duration
Gmail "Our system has detected that this message" 5/hr Suspend 1 h
Gmail "Our system has detected an unusual rate" 2/hr max_message_rate = 10/min 30 m
Gmail (example, shipped commented out, because it suspends whole tenants) "This message does not have authentication information" None SuspendTenant 3 h
Yahoo [TS02] (unusual traffic patterns, submit IPs for review) 3/hr max_message_rate = 1/min 30 m
Yahoo [TS03] (unusual traffic patterns) 3/hr max_message_rate = 10/min 30 m
Yahoo 421 4.7.0 [TSS04] (deferred, user complaints). The vendor file also has: any [TS?S04] leads to Suspend for 2 h, with no threshold 2/hr Suspend 2 h
Yahoo 421 4.7.0 [TSS05] (deferred, user complaints) 2/hr Suspend 4 h
Yahoo 421 [IPTS04] 2/hr Suspend 2 h
Yahoo 421 [IPTS05] 2/hr Suspend 4 h
Yahoo 553 5.7.1 [BL (IP listed by Spamhaus) 5/hr Suspend 2 h
Yahoo "Max message per connection reached" 3/hr max_message_rate = 10/min 1 h
Yahoo Japan "VS98-IP0 deferred" (553 Mail from <IP> not allowed) 2/hr Suspend 1 h
Yahoo Japan 421 [TSS04] or 421 [IPTS04] (volume or complaints) 2/hr Suspend 1 h
Yahoo Japan "Timeout waiting for command" 2/hr Suspend 30 m
GMX and WEB.DE "Too many connections" 3/hr connection_limit = 1 30 m
GMX and WEB.DE "Reject due to policy restrictions." 5/hr max_message_rate = 1/min 1 h
GMX and WEB.DE "Reject due to policy violations." 5/hr Suspend 1 h
GMX and WEB.DE 554 … Reject due to policy restrictions. 5/hr Suspend 2 h
Outlook "Unfortunately … part of their network is on our block list" 5/hr Suspend 2 h
Outlook "Access denied, please try again later" 5/hr Suspend 1 h
Outlook "Server busy. Please try again later" 5/hr Suspend 30 m
Outlook same "Server busy" text (second rule) 3/hr max_message_rate = 1/min 15 m
Outlook "has been temporarily rate limited" 3/hr Suspend 30 m
Outlook "exceeded the maximum number of connections" 2/hr connection_limit = 1 1 h
Outlook "exceeded maximum number of messages per connection" 2/hr max_deliveries_per_connection = 2 1 h
Outlook "Connection refused … exceed max concurrent connections. IB007" 2/hr connection_limit = 1 1 h
Outlook "Temporary server error. Please try again later" 5/hr Suspend 1 h
Apple "Service unavailable - try again later" 5/hr Suspend 15 m
Apple [BS02] Temporary server error. 5/hr Suspend 15 m
Apple [HCM1] Your mail from <IP> was deferred 3/hr Suspend 15 m
Apple "rejected due to having a domain present in the Spamhaus DBL" 3/hr Suspend 4 h
Comcast (vendor file) RL0000 (rate limited) 2/hr max_connection_rate = 10000/h 2 h
Comcast (vendor file) RL000010 (domain throttled) Immediate SuspendTenant 5 m
Orange "Trop de connexions" 2/hr connection_limit = 1 1 h
Orange "Service refuse" 2/hr Suspend 1 h
Orange "Client host blocked for spamming issues" (variant with the Cloudmark reset URL) 5/hr Suspend 2 h
Orange "Client host blocked for spamming issues … spamhaus" 5/hr Suspend 2 h
Mimecast "Internal resource temporarily unavailable" 3/hr Suspend 30 m
Netvigator "Too many messages for this session" 3/hr Suspend 30 m
QQ 550 Sender frequency limited / 550 Ip frequency limited / 550 Connection frequency limited / 550 Domain frequency limited / 550 Mail content denied 5/hr each Suspend 1 h
163.com 451 DT:SPM (anti-spam deferral) 5/hr Suspend 15 m
163.com 421 Too many connections 2/hr connection_limit = 1 1 h
163.com 554 DT:SPM 2/hr connection_limit = 1 1 h
163.com 550 RP:ORQ or 554 HL:ITC (daily limit reached) 2/hr each Suspend 1 h

Reading the pattern

Across providers, the community's throttling logic follows the design principles in MTA Delivery Tuning:

  • Responses about mechanical limits (too many connections, or too many messages per session) get a parameter cut for about an hour.
  • Brief capacity problems ("server busy", "service unavailable") get short suspensions of 15–30 minutes.
  • Reputation events (deferrals for user complaints, blocklist rejections) get the longest suspensions (2–4 hours), because continuing to send through them makes reputation worse.

Note also how low the baselines are compared with the global default. The biggest providers are shaped to 5 connections across the provider, and several regional providers (Orange, Yahoo Japan) to just 2.

Caveats

  • The values are what worked for KumoMTA operators as of the fetch date. Providers change limits without notice, and the reputation of each IP address affects what a given sender actually gets. Check the values against your own deferral logs.
  • Several entries carry dates in the file (Barracuda and Netvigator are marked 2026-03-27, and the note on the Google and Workspace rollup is dated 2024-09-03). Each row has its own freshness.
  • The community file states explicitly that its rules are contributed as-is, and must be combined with the vendor's defaults file for full coverage.
  • These are limits that senders impose on themselves, not guarantees published by providers, except where a row is marked "provided directly by" the provider (Yahoo, Comcast, Mimecast, mail.com, Mailgun).

Check your own record

The free check reads what your domain publishes in DNS.

In this topic

All 18 in Operations →