Why does Mailgun trigger a 4.7.0 rate limit exceeded error?

You send a burst of transactional emails, and suddenly Mailgun returns a 4.7.0 rate limit exceeded error. No configuration change. No new code. Just a hard stop mid-send. What happened?

Mailgun enforces sending rate limits to maintain server stability and prevent abuse. These limits apply per domain, IP, and account. When your outbound volume spikes—say, 100 emails in 15 seconds—Mailgun will block further delivery until the window resets. It’s not punishment. It’s protection.

Even healthy sending workflows trigger this error if your list includes invalid or outdated addresses, causing a spike in bounces or throttling. The same list that worked yesterday fails today.

Key takeaways

  • Mailgun enforces rate limits per domain, IP, and account to maintain infrastructure stability.
  • The 4.7.0 error occurs when sending volume exceeds thresholds in short time windows—typically 15 seconds or 1 minute.
  • Sudden spikes due to high bounce rates, outdated lists, or misconfigured automation often trigger the error without any change in configuration.

How to adjust Mailgun sending rate to avoid 4.7.0 rate limit exceeded in trace

You’re hitting Mailgun’s 4.7.0 rate limit when sending emails because your volume exceeds the platform’s per-second or per-minute thresholds. To fix it, first inspect the SMTP trace to see exactly when and how many messages were rejected. Then, reduce your sending rate to under 10–15 emails per minute. Use your Mailgun control panel to check your account’s sending limits, and implement exponential backoff in your app to avoid spikes. If you need higher volume, consider splitting sends across domains or IPs.

Step-by-step: Diagnose and adjust your Mailgun sending rate

  1. Review the trace for 4.7.0 SMTP error — Look at the full SMTP trace log to see the exact time window and volume of messages rejected. The 4.7.0 error means the receiving system rejected your email due to rate limiting. Identifying the spike window helps you tune your sending rhythm.
  2. Check your Mailgun account limits — Go to Settings > Sending in the Mailgun control panel. This shows your current daily and per-second sending limits. Most accounts default to 10 emails per second, but higher tiers vary. Know your max before adjusting.
  3. Scale back your sending volume — Start testing at 10–15 emails per minute. This keeps you safely under typical rate limits. If you're still getting 4.7.0 errors, reduce further to 5–10 per minute. Consistency matters more than volume.
  4. Implement exponential backoff in your app — If you’re using an API or script, add logic that waits longer after each failed send. For example, wait 1 second after the first failure, 2 seconds after the second, 4 seconds after the third, and so on. This prevents cascading failures during bursts.
  5. Skip rate limits with domain or IP splitting — If you’re sending large volumes repeatedly, consider splitting your list across multiple domains or dedicated IPs. This spreads the load and avoids hammering a single sending point. Be sure your infrastructure supports it — and that you maintain proper DNS records like SPF, DKIM, and DMARC for each.

Before you scale up: keep clean lists and test inbox placement

Low-quality lists cause more failed deliveries and increase the risk of hitting rate limits. Always verify your email addresses before sending. Clean your list with bulk verification to remove invalid, disposable, or role accounts. Even small improvements in list quality reduce bounce rates and help maintain sender reputation. High deliverability isn’t just about timing — it’s about sending the right message to the right person.

The 4.7.0 error is a standard rate-limit signal from mail servers. It’s not a permanent block — it’s a warning to slow down. [RFC 5321] defines how SMTP servers should handle congestion and rate limits, and 4.7.0 is the code used when the sending volume exceeds the permitted rate.

How does list hygiene impact Mailgun rate limits?

Bad email lists directly trigger Mailgun’s 4.7.0 rate limit exceeded errors by flooding your sending queue with invalid, dormant, or role-based addresses—each of which increases bounces and triggers SMTP throttling. You can’t outpace bad data: even if you stay under your hourly sending cap, poor hygiene causes delivery spikes that Mailgun treats as potential spam behavior, leading to artificial rate limiting.

Invalid and role-based addresses hurt send rates

When you send to addresses like admin@, support@, or sales@—especially without confirmation—they typically don’t open emails, often bounce, and may be flagged as unengaged. These role-based emails rarely indicate real human interest, but they still count against your sending rate. Worse, they contribute to high bounce rates that degrade your sender reputation over time.

Mailgun monitors bounce patterns closely. A sender with more than 5% invalid addresses in a batch is statistically more likely to trigger delivery spikes, even if the actual number of messages sent per minute stays under the threshold. The system interprets this as inconsistent intent, possibly indicating spammy behavior. If the bounce rate climbs, Mailgun may throttle your account regardless of your configured send limits.

Hygiene prevents reputation damage and throttling

Every bounce—temporary or permanent—adds weight to your sender reputation score. A high or sustained bounce rate is a red flag. According to industry standards tracked by organizations like the Messaging, Malware, and Mobile Anti-Abuse Working Group (M3AAWG), consistent bounce rates above 2% can lead to inbox placement issues, and rates over 5% often trigger aggressive throttling from platforms like Mailgun.

Let’s be clear: even if your sending rate remains within Mailgun’s limits, the underlying behavior of sending to large volumes of non-deliverable or low-engagement addresses can still trigger the 4.7.0 error. This isn’t just about timing—it’s about signal. Poor list hygiene sends mixed signals to Mailgun, making the system assume your messages are unwanted.

Fix the source: verify your list before sending. Tools like bulk email list cleaning remove invalid addresses, catch-all domains, and role-based emails before they ever hit Mailgun’s servers. This reduces bounces, improves sender reputation, and keeps your sending rates stable—without needing to throttle manually.

Use real-time email verification to prevent 4.7.0 errors

If you're hitting Mailgun’s 4.7.0 rate limit exceeded error in your trace logs, it’s often because you’re sending to invalid, catch-all, or disposable addresses—each of which wastes bandwidth and signals poor list hygiene. The fix starts not with throttling, but with filtering out bad addresses before send. You don’t need to guess what’s wrong with your list. Use a real-time verification API with 98.9% accuracy to scrub invalid emails, catch-all domains, and disposable addresses before they ever reach Mailgun.

Here’s how to do it right

  • Run your entire email list through a real-time verification API like Email List Validation’s API to test each address instantly against SMTP, DNS, and domain rules.
  • Filter out any address flagged as invalid, catch-all, or disposable. These don’t just bounce—they hurt sender reputation even when they don’t return a hard bounce.
  • Catch-all domains accept email but don’t route it to real users. They increase your bounce rate without engagement and contribute to Mailgun's 4.7.0 error when you hit rate limits on failed deliveries.
  • Use your list cleaner’s bulk verification tool to process large lists in minutes, removing dead addresses before campaigns go live.
  • Test your final list with inbox placement testing to confirm deliverability and avoid surprises on launch day.

Prioritize delivery quality over volume

Mailgun’s rate limits are designed to protect its network from abuse. Sending to non-existent or unengaged addresses—especially in high volume—triggers throttling. The root cause isn’t always sending too fast. It’s sending to the wrong people.

You can send 100 emails per second to 100 valid addresses and stay under limit. But send the same volume to 100 invalid ones and you’ll hit 4.7.0 fast. That’s why verifying your list is not a pre-send luxury—it’s a delivery necessity.

SMTP (RFC 5321) defines proper mail transfer behavior. When you send to catch-alls or invalid domains, you’re operating outside expected norms. This triggers automatic throttling and reputation penalties.

Let’s be clear: You don’t need to send to every address you have. You need to send to ones that can engage. Use data—like inbox placement metrics and bounce analysis—to refine your list. That’s how you stay within Mailgun’s limits and keep your email deliverability high.

What happens when a Mailgun 4.7.0 error occurs?

When Mailgun hits a 4.7.0 rate limit exceeded error, the recipient’s SMTP server rejects your message with a temporary failure code. This typically happens when you send too many emails too quickly, triggering throttling. If left unaddressed, repeated failures can delay sends, reduce inbox placement, and harm your sender reputation — especially if paired with high bounce rates. It’s not a permanent block, but it signals your sending pattern is unsustainable.

SMTP rejection and delivery consequences

Mailgun receives a 4.7.0 response from the recipient’s mail server, indicating a temporary delivery failure due to rate limits. This means your message doesn’t get delivered on first try, and the server returns a bounce-like status. If you don’t implement retry logic, the message may be lost entirely, especially with high-volume campaigns.

Most mail servers treat repeated 4.7.0 errors as signs of poor sending hygiene. Combined with a high bounce rate, this can lead to temporary blacklisting by recipient filters. The longer you push through limits without adjusting, the higher the chance that your domain or IP gets flagged as a potential spam source. Some providers, like Spamhaus, monitor sending patterns and may list IPs showing sustained bursts of traffic, even if not malicious (see Spamhaus Overview).

Why rate limits matter beyond the code

Receiving 4.7.0 errors isn’t just about failed delivery — it reflects larger deliverability risks. Recipient servers use rate limits to protect inbox quality. If your sends exceed recommended thresholds, even legitimate email can be treated like spam. This impacts long-term visibility and trust with inbox providers.

Let’s say you’re sending 1,000 emails per minute without throttling. Even with clean lists, you’ll hit the 4.7.0 limit quickly. The solution isn’t to ignore the error, but to adjust your sending cadence. Monitor your Mailgun logs and set pacing based on actual delivery feedback. You can also use a tool like bulk email list cleaning to remove invalid addresses before sending, reducing total volume and the risk of hitting rate limits prematurely.

Best practices for rate-limit-aware sending with Mailgun

You can avoid the 4.7.0 rate limit exceeded error in Mailgun traces by sending in small, controlled batches, warming up new domains gradually, monitoring bounces, and aligning send times with engagement patterns. Start with low volumes and scale only after consistent positive feedback. This reduces strain on Mailgun’s systems and builds sender reputation over time.

Send in smaller, segmented batches

  • Split your list by engagement level—active, inactive, or new subscribers—and prioritize sending to the most engaged first.
  • Send no more than 100–200 emails per hour initially, especially when starting a new campaign or warm-up phase.
  • Use Mailgun’s API rate-limit headers (like RateLimit-Limit and RateLimit-Remaining) to track real-time limits and pause before hitting them.
  • Automate this with tools that respect rate limits, or use a service like real-time email verification API to clean lists before sending.

Build reputation with gradual warm-up and smart timing

  • For new domains or IPs, begin with 10–50 emails per day, increasing by ~10% daily over 7–10 days.
  • Send content focused on engagement—low-friction, high-value messages—to boost open and click rates, which signal legitimacy to receiving servers.
  • Check bounce logs hourly during send campaigns: hard bounces (like invalid addresses) should be removed immediately, while soft bounces may require retry logic.
  • Reputation is more affected by engagement than volume. Sending at 9 AM or 2 PM UTC often works better than peak hours, unless your domain has a long history of consistent sender behavior.
  • Monitor your reputation using tools like Spamhaus or MxToolbox to catch issues before they escalate.
  • Consider pre-validating your list with bulk email list cleaning to remove invalid, disposable, or role-based addresses that increase bounce risk.

How does Email List Validation integrate with Mailgun?

You can connect Email List Validation directly to Mailgun via API or webhook to clean and verify your lists automatically before sending. This integration helps prevent rate limits like 4.7.0 by removing invalid, risky, or high bounce-risk addresses before they hit your Mailgun sends. The system works in real time or in bulk, so you maintain send efficiency and sender reputation without manual checks.

Bulk verification for existing campaigns

Let’s say you’ve already built a campaign in Mailgun but are worried about list hygiene. Use Email List Validation’s bulk verification tool to scan your entire list before upload. It checks each address for validity, catch-all status, role accounts, and disposable domains—common root causes of Mailgun’s 4.7.0 rate limit errors. The result? A list trimmed of dead or risky addresses, so your send volume stays within Mailgun’s recommended thresholds.

After verification, you get a detailed report listing each address’s status: valid, invalid, catch-all, or risky. You can filter and export only the valid emails. This step is especially useful for seasonal campaigns or re-engagement efforts where list quality has likely degraded. The whole process is fast, reliable, and costs nothing extra if you use the 100 free credits included with your signup—credits never expire, so you can re-run tests as needed.

AI-powered refinement and ongoing optimization

The in-app AI assistant goes beyond basic validation. It analyzes your past sending patterns—like bounce rates, send volume spikes, or low engagement—and flags risky behaviors that could trigger Mailgun’s rate throttling. For example, sending too many emails too quickly to new domains may trigger 4.7.0. The AI suggests adjustments: reduce send frequency, segment by domain, or warm up new IPs.

With integrations built for platforms like Mailgun, you can set up automatic cleanup workflows. When you send a list through the API, it runs a real-time verification check first. Mailgun’s own documentation confirms that maintaining list hygiene is a core part of avoiding delivery issues, and tools like Email List Validation make that consistent.

If you’re unsure where to start, look at how Email List Validation handles list cleaning at scale: clean your list in bulk. Or, integrate the real-time verification API to verify addresses on the fly during sign-up or campaign setup. No matter how you use it, the goal is the same—keep your sending rates sustainable and your inbox placement strong.

For deeper insight into deliverability health, test your inbox placement with real inbox placement testing before sending to real users. This gives you a practical check on how your messages land—not just in mail server logs, but in actual inboxes.

Common causes of Mailgun 4.7.0 beyond sending rate

Mailgun’s 4.7.0 error isn’t always about sending too fast. You might hit it even with a steady rate if your messages end up in low-trust domains, have malformed headers, use a shared IP with a bad history, or come from a sudden spike after a dormant period. These factors trigger rejection based on reputation, not throttle limits.

Domain-level blocking and acceptance policies

Some domains—especially large enterprises or ISPs—run strict inbound policies. If your sender profile or content triggers filters for spam-like behaviors (e.g., high promotional language, mismatched headers), they may block or silently drop your email regardless of send rate. Even low-volume sends can be denied. This is common in sectors like finance or healthcare where email screening is more aggressive.

For example, Gmail’s reputation systems are known to prioritize sender trust over raw volume. You can’t always see these decisions in real time. A well-constructed header might pass initial checks, but a mismatch in alignment (e.g., SPF vs. From domain) can cause rejection after inspection. You can test this behavior indirectly by analyzing bounce or delivery reports in tools like MxToolbox, which provide insights into domain-specific filters.

Shared IP reputation and volume spikes

When you use Mailgun’s shared IP pool, your sending reputation is tied to everyone else on that IP. If other users send spam-like content or have high bounce rates, your messages can get tainted—even if your own content is clean. Many bulk email platforms have this risk, especially when they serve a mix of senders with uneven reputations.

Similarly, a sudden spike after inactivity raises red flags. ISPs and filters notice sharp increases in sending volume as a sign of compromised or bot-driven campaigns. If you’ve sent 100 messages a month for six months, then 50,000 in one day, even valid emails may be filtered. A gradual ramp-up is better—let the infrastructure and your reputation build.

Before large campaigns, test your list’s health using real-time validation. Email List Validation’s real-time verification API helps isolate invalid or risky addresses that could strain your sender reputation or trigger filtering even if they’re technically deliverable.

What does a valid verdict mean in email verification?

A 'valid' email address means the server confirms it exists and accepts mail—so you won’t get a hard bounce. It doesn’t guarantee your message lands in the inbox, but it removes the risk of delivery failure due to an invalid address. This is the baseline for reliable sending.

What a valid verdict actually means

  • MX record confirmed: The domain has valid mail routing setup—no DNS dead ends.
  • SMTP handshake completed: The mail server responds with a successful 250 code during the connection attempt.
  • No role account detected: It's not a generic address like admin@, postmaster@, or sales@ that may not receive mail.
  • Catch-all not detected: The address isn’t part of a mail system that accepts all incoming messages (common with poorly configured servers, which can trigger spam filters).
  • Deliverability risk reduced: You’ve eliminated the chance of technical bounces from invalid or non-existent addresses.

Why "valid" isn’t "guaranteed inbox" — and what to expect

Even a valid address can end up in spam or be ignored. Deliverability depends on reputation, content, engagement, and sender authentication—factors beyond inbox verification. For example, a sender with a poor reputation may have valid addresses blocked regardless. Tools like inbox placement testing help assess this. You can’t verify reputation, but you can verify that your emails won’t fail on technical grounds.

ItemDetails
MX record confirmedThe domain has valid mail routing setup—no DNS dead ends.
SMTP handshake completedThe mail server responds with a successful 250 code during the connection attempt.
No role account detectedIt's not a generic address like admin@, postmaster@, or sales@ that may not receive mail.
Catch-all not detectedThe address isn’t part of a mail system that accepts all incoming messages (common with poorly configured servers, which can trigger spam filters).
Deliverability risk reducedYou’ve eliminated the chance of technical bounces from invalid or non-existent addresses.
The 5 items listed under “What a valid verdict actually means”, side by side.

Our 98.9% accuracy is based on real-time checks across multiple layers: DNS (MX, SPF), SMTP response codes, and role account detection. This is consistent with standards set by RFC 5321, the foundational protocol for email delivery.

Let’s be clear: a valid verdict doesn’t mean the message will land in the inbox—just that it won’t fail due to a bad address. That distinction matters. If you're hitting a 4.7.0 rate limit in Mailgun's trace logs, you’re not sending too fast—your list is likely full of addresses that don’t exist, or your sending pattern is triggering throttling. Clean your list first.

Conclusion: Prevent 4.7.0 errors with data-driven sending

The 4.7.0 rate limit exceeded error is not a mystery—it’s a signal that your sending patterns exceed Mailgun’s thresholds. Prevent it by treating your email list as a performance metric, not a static asset.

High bounce rates and poor list hygiene are the primary triggers. Email list verification identifies invalid, disposable, and risky addresses before they reach your send queue. This reduces throttling and protects sender reputation. Real-time rate monitoring ensures you stay under Mailgun’s limits without underutilizing capacity.

Sources

  • Segmented campaigns also protect list health, driving 9.37% fewer unsubscribes, 4.65% fewer bounces, and 3.90% fewer abuse reports than unsegmented sends. — Mailchimp (2025)
  • 65.62% of newsletter creators send weekly, compared with 15.82% sending daily and only 6.27% sending monthly. — beehiiv (2025)

Keep reading

Ready to put this into practice? Email List Validation verifies emails with 98.9% accuracy — start with 100 free verifications.

Frequently asked questions

What does 4.7.0 mean in Mailgun SMTP trace?

The 4.7.0 error indicates a rate limit exceeded response from the recipient’s mail server. It’s a temporary failure due to sending too many messages in a short time.

How do I fix 4.7.0 errors in Mailgun?

Reduce your sending rate, verify your email list to eliminate invalid addresses, and ensure consistent sending volume without spikes.

Does Mailgun have a default sending limit?

Yes, Mailgun enforces default per-second and per-minute limits based on plan tier. High-volume senders must request rate limit increases.

Can a bad email list cause a 4.7.0 error?

Yes, sending to a list with many invalid or role-based addresses increases bounce rates, which can lead to throttling and 4.7.0 errors.

How does real-time email validation help avoid deliverability issues?

It removes invalid, catch-all, and disposable emails before sending, reducing bounce rates and improving sender reputation.

What is a catch-all email address?

A catch-all address accepts mail for any user on the domain—even nonexistent ones. It increases the chance of hard bounces and harms deliverability.

Can I get temporary blacklisting from Mailgun?

No, Mailgun itself does not blacklist. But sending at high rates to invalid addresses can trigger temporary blocks from recipient servers.

Does Email List Validation offer a free trial?

Yes, you get 100 free verifications to start. Purchased credits never expire, allowing you to verify lists on demand.

What integrations does Email List Validation support?

It integrates with Mailchimp, HubSpot, Klaviyo, and SendGrid for automated list cleaning before campaign send.

How accurate is Email List Validation?

It delivers 98.9% accuracy across bulk and real-time verification, detecting invalid, catch-all, and role-based addresses.