What happens when an email is too large?

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

When an email exceeds size limits, it bounces. The receiving server refuses to accept it, and you'll get an error message back from your ESP or mail client. The sender sees the rejection, but the recipient never gets anything.

Most mailbox providers enforce limits between 20-50MB, but that's not a guarantee. Gmail allows 25MB for incoming and outgoing messages. Outlook caps at 20MB for attachments (25MB total message size for Microsoft 365). Yahoo Mail allows 25MB attachments. Fastmail permits 50MB. Corporate mail servers often set much lower limits, sometimes 10MB or less, to reduce storage and bandwidth costs.

Your ESP also enforces limits. Mailchimp caps attachments at 10MB. SendGrid and AWS SES limit messages to 10MB including base64-encoded attachments. Postmark allows 10MB. Brevo caps at 5MB for free accounts, 10MB for paid plans.

Here's the tricky part: when you attach a file, it gets base64-encoded before sending. That encoding increases file size by about 33%. A 7.5MB PDF becomes 10MB when encoded. So even if your attachment looks small enough, the encoded version might exceed limits.

What actually happens depends on where the rejection occurs:

  • If your ESP rejects it outright, you'll see the error immediately in your mail client or campaign dashboard.
  • If the receiving server rejects it after your ESP sent it, you'll get a hard bounce notification hours or days later.
  • Some corporate mail servers silently drop oversized messages without sending a bounce. The sender thinks it went through, the recipient never knows it was sent.

No one splits emails into multiple parts anymore. That was an old workaround that broke more than it fixed. Modern ESPs reject oversized messages cleanly and tell you why.

How to fix it:

  • Use cloud links instead of attachments. Upload your file to Google Drive, Dropbox, or your own server, and link to it in the email. This is what everyone does now.
  • Compress images before attaching. Most phones and cameras save images at much higher resolution than email needs. Resize images to 1200px width or less.
  • Check your total message size before sending. HTML emails with lots of embedded images can exceed limits even without attachments. Use web-hosted images with <img src="..."> tags instead of embedding them in the email body.
  • Test with multiple recipients. If you're sending to corporate addresses, one recipient's mail server might accept 25MB while another's rejects anything over 10MB.

But if you're building an app that sends receipts or invoices with PDF attachments, plan for this. Keep generated PDFs under 5MB, or host them on your server and email a secure download link instead. That's how airlines handle boarding passes, how SaaS tools send data exports, and how e-commerce stores send detailed order confirmations.

Running into size limit errors right now? Our free Email Header Analyzer can show you the exact rejection message and which server refused it.

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

Get troubleshooting help for your size limit errors

I read this on the Email Almanac about email size limits and what happens when messages are too large. Help me troubleshoot MY specific situation: 1. Calculate the real encoded size: If I'm attaching a XMB file, what will the encoded size be? Will it exceed my ESP or recipient's limits? 2. Identify where rejection is happening: Am I getting immediate errors (ESP rejecting), bounce notifications (receiving server rejecting), or silent failures (no notification at all)? 3. Pick the right workaround for my use case: Should I compress the file, use a cloud link, host it on my server, or split content across multiple emails? 4. Prevent this in production: If I'm building an automated email system (receipts, invoices, reports), what file size should I target to avoid rejection across all major providers? --- My details: - Email platform/ESP: e.g. Mailchimp, SendGrid, Postmark, custom SMTP - Attachment type: e.g. PDF invoices, images, documents - Typical file size: before encoding - Recipient domains: e.g. Gmail, corporate Outlook, mixed - Error message (if any): paste the exact bounce or rejection text - Use case: [e.g. automated receipts, newsletter with media, one-off large file send]

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