What are the size limits for emails?

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

Email size limits hit you in two places: total message size (attachments and all) and message body size (just the HTML and text).

Most mail servers cap total message size at 20-25 MB. That includes everything: your HTML, images, attachments. Here's the catch: attachments get Base64 encoded during transit, which inflates their size by about 33%. So a 20 MB PDF becomes 26.6 MB on the wire. That's over the limit, and the mail server bounces your message before it even leaves.

Why these limits? SMTP was designed in the 1980s when storage and bandwidth cost real money. Those constraints got baked into infrastructure, and they're still here. Servers enforce them to prevent resource abuse and keep mail flowing.

The message body limit is different. It's set by email clients, not servers. Gmail clips message bodies that exceed about 102 KB of HTML and text combined. Your email still delivers, but everything past 102 KB gets hidden behind a "[Message clipped]" link. Readers have to click to see the rest, which most won't.

So this hits newsletters with long content blocks, embedded CSS, or lots of inline images (data URIs). Each inline image encoded as a data URI adds to your body size. A few heavy images can push you over 102 KB fast.

What to do instead: host large files on Google Drive, Dropbox, or OneDrive, then link to them in your email. For newsletters, trim the body. Keep emails under 102 KB by hosting images externally instead of inlining them, and by keeping your HTML lean. If you're sending receipts or shipping notifications with PDFs attached, make sure the encoded size stays under your server's limit (usually 20 MB), or link to a download page instead.

Most ESPs (Mailchimp, SendGrid, Postmark) enforce these limits automatically, but they don't always tell you why an email bounced. If you're seeing "message too large" errors, check your attachment sizes AFTER encoding. And if Gmail's clipping your newsletters, view the raw HTML source and check the file size. If it's over 100 KB, it's time to trim.

Want to check your email's body size before sending? View the raw HTML in your ESP's preview, paste it into a text editor, and check the file size. Or send a test to yourself and check the source. If you're stuck debugging a "message too large" bounce, our SOS hotline is free.

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 personalized advice for your size limit issue

I read this on the Email Almanac about email size limits: "Mail servers cap total message size at 20-25 MB (including attachments). Attachments get Base64 encoded and inflate by 33%, so a 20 MB file becomes 26.6 MB on the wire and bounces. Gmail clips message bodies over 102 KB of HTML and text." Help me figure out if size limits are affecting MY sending. I need: 1. How to check if my emails are hitting size limits (total message or body) 2. What to do if attachments are bouncing (file hosting options, encoding considerations) 3. How to measure my newsletter's body size and trim it if Gmail is clipping 4. Whether my ESP enforces limits automatically and how to see bounce reasons --- My details (the more you share, the better the advice): - Email platform/ESP: e.g. Mailchimp, SendGrid, Postmark, Gmail, custom SMTP - Email type: [newsletter, transactional with attachments, receipts with PDFs] - Attachment sizes: if applicable, typical file sizes you're sending - Current issue: [bounces with "message too large", Gmail clipping, slow sends] - Experience level: beginner / intermediate / advanced

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