
email size limit optimization for high volume senders
Smaller emails send faster, land more often, and dodge throttling. Here's how to optimize email size when you're sending at scale.
Every email provider has two limits that matter when you're sending at volume: how many messages you can send per day, and how large each message can be. Most guides focus on the first number. The second one quietly kills your throughput.
A 100 KB email doesn't just take longer to deliver than a 20 KB email. It hits spam filters differently, eats bandwidth on shared IPs, and increases the chance of a timeout mid-delivery. When you multiply that across 10,000 or 50,000 sends per day, the difference between a lean message and a bloated one is the difference between landing in the inbox and getting throttled at the gate.
Email size and sending limits by provider at a glance#
For high volume senders, message size limits and daily send caps interact directly. A provider might allow 10,000 emails per day, but if each message is 25 MB of base64-encoded images, you'll hit bandwidth throttling long before you reach that number.
| Provider | Daily limit (free) | Daily limit (paid) | Max message size | Scale option |
|---|---|---|---|---|
| Gmail | 500/day | 2,000/day (Workspace) | 25 MB | SMTP relay, sender rotation |
| Outlook/365 | 300/day | 10,000/day (HVE add-on) | 150 MB | High Volume Email feature |
| Zoho Mail | 250/day | 1,000/day | 25 MB | Zoho ZeptoMail for transactional |
| Amazon SES | Sandbox: 200/day | Production: request-based | 10 MB (raw) | Auto-scales with reputation |
| SendGrid | 100/day (free tier) | Plan-based | 30 MB | Dedicated IP, subuser rotation |
| LobsterMail | 10/day (verified free) | 500/day (Builder) | 10 MB | Agent-managed, API-first |
That max message size column looks generous until you remember how email encoding works. A 7 MB PDF attachment becomes roughly 9.3 MB after base64 encoding adds ~33% overhead. Your "small" attachment just ate most of your headroom.
Why smaller emails land more often#
Email size affects deliverability in ways that aren't obvious. Spam filters from Google and Microsoft analyze the ratio of image content to text content. An email that's 80% images and 20% text looks like a marketing blast, even if it's a transactional notification with a single logo.
Large MIME parts also trigger additional scanning. Some corporate mail servers decompose and scan every attachment, and they enforce their own size limits that are often well below the provider maximum. Microsoft Exchange Online, for instance, defaults to a 35 MB receive limit per mailbox, but many IT admins set it to 10 MB or lower.
If you're running 50 agent inboxes sending outbound messages, each oversized email compounds the problem. One bounced message per hundred might seem harmless. But bounce rates above 2% start damaging your sender reputation, and oversized messages that get rejected at the receiving end count as bounces.
The base64 tax and how to avoid it#
Every file attachment in an email gets base64-encoded for transport over SMTP. This encoding converts binary data into ASCII text, and it inflates file size by about 33%. A 3 MB image becomes 4 MB in transit. A 10 MB PDF becomes 13.3 MB.
Three ways to reduce this overhead:
-
Link instead of attach. Host files on S3, Google Cloud Storage, or any CDN and include a download link. The email stays under 20 KB, the recipient gets the file, and your SMTP connection closes in milliseconds instead of streaming megabytes.
-
Compress before encoding. If you must attach, compress first. PNGs can often be reduced 40-60% with tools like
pngquantorsharp. PDFs can be recompressed with Ghostscript. Do this programmatically before your agent queues the send. -
Strip inline images. Many HTML email templates include logos, banners, and social icons as inline base64 data URIs. Each one bloats the message body. Replace them with hosted image URLs. Your email drops from 500 KB to 15 KB.
For agents handling email programmatically, this is where an API-first approach pays off. Instead of manually checking each template in an ESP dashboard, your agent can run a pre-send audit: measure the MIME size, strip anything over a threshold, and swap attachments for links automatically.
Sender rotation and size: a combined strategy#
Sender rotation distributes your outbound volume across multiple sending accounts so no single account hits its daily cap. It's the standard playbook for cold outreach at scale. But most rotation setups treat every message as identical, routing them round-robin without considering message size.
That's a missed optimization. If you're rotating across five Gmail Workspace accounts (2,000 sends each, 10,000 total), and half your messages carry 5 MB attachments while the other half are plain text, routing the heavy messages to a single account means that account is pushing 5 TB of data while the others handle kilobytes. The heavy account will get throttled first.
A smarter approach: route by message weight. Plain text messages go through accounts with lower bandwidth tolerance. Heavy messages get spread evenly or routed through accounts on dedicated IPs where bandwidth isn't a constraint. This is the kind of optimization that's hard to do manually but straightforward for an agent with API access to its sending infrastructure.
Dedicated IP vs. shared IP for large messages#
If you're sending over 50,000 emails per day, the dedicated IP question comes up fast. On a shared IP, your reputation depends partly on other senders sharing that IP. If someone else on the same IP is sending 25 MB spam blasts, your lean 10 KB transactional emails get caught in the collateral damage.
Dedicated IPs give you full control over reputation, but they require warming up. A fresh IP with no sending history starts with zero reputation. Most providers recommend starting at 50-100 emails per day and doubling every few days until you reach your target volume. The warm-up period typically takes 2-4 weeks for volumes under 100,000/day.
Message size matters during warm-up more than at any other time. ISPs monitor new IPs closely, and large messages from an unknown sender look suspicious. Keep your warm-up emails small (under 50 KB) and text-heavy. Save the attachments and rich HTML for after your IP has established a sending pattern.
Practical size targets#
Based on what actually performs well at scale, here's what I'd recommend:
Transactional emails (receipts, confirmations, password resets): Keep under 30 KB. These should be mostly text with minimal HTML formatting. No images unless absolutely necessary.
Agent-to-human outreach (introductions, follow-ups, notifications): Under 50 KB. One small inline image at most. If your agent needs to share documents, link to them.
Reports and data exports: Don't send these as attachments if they exceed 2 MB. Generate a download link with a 24-48 hour expiry. The email itself stays tiny, the recipient gets the file, and you avoid the base64 tax entirely.
Bulk marketing (newsletters, announcements): Under 100 KB. This is where most senders go wrong. Marketing emails with hero images, multiple product shots, and embedded fonts routinely hit 500 KB or more. Strip it down. Use hosted images with explicit width/height attributes so the email renders correctly even before images load.
How LobsterMail handles size and rate limits#
LobsterMail's approach is to handle this at the infrastructure layer so your agent doesn't have to think about it. When your agent calls inbox.send(), the platform enforces a 10 MB total message size limit. Attachments over that threshold get rejected with a clear error before the message ever hits the queue.
The daily sending limits are tiered: verified free accounts get 10 emails per day, Builder accounts at $9/month get 500 per day. The limits reset at midnight UTC. If your agent exceeds the limit, it gets a 429 Too Many Requests response with a clear indication of when it can send again. No silent failures, no deferred messages that vanish into a retry queue.
For deliverability, the platform handles SPF, DKIM, and DMARC automatically for every inbox your agent creates. Your agent doesn't configure DNS records or manage authentication. It creates an inbox and sends. The infrastructure handles the rest.
This matters more than it sounds. One of the most common reasons emails get rejected at volume isn't size or rate limits. It's missing or misconfigured authentication. A message from an IP with valid SPF that's signed with DKIM and backed by a DMARC policy is treated fundamentally differently than one without.
What to do right now#
If you're sending more than 1,000 emails per day, audit your average message size. Pull a sample of 100 sent messages and check the MIME size. If the average is over 75 KB, you have room to optimize. If any messages exceed 5 MB, fix those first since they're the ones most likely to bounce or get throttled.
Set up a pre-send check in your pipeline. Before any message gets queued, validate that total size (body plus attachments after base64 encoding) is under your target threshold. Swap oversized attachments for hosted links automatically. This single change will improve your throughput and deliverability more than any sender rotation strategy.
If you're building agents that need to send email without you babysitting the infrastructure, LobsterMail handles inbox creation, authentication, and size enforcement through a single API call. Your agent creates an inbox, sends messages, and the platform manages the limits.
Frequently asked questions
What is the recommended maximum email size for high volume senders?
Keep transactional emails under 30 KB and marketing emails under 100 KB. While most providers allow up to 25 MB, messages over 100 KB see measurably lower deliverability rates and slower throughput at scale.
How does base64 encoding increase email file size?
Base64 converts binary attachments to ASCII text for SMTP transport, adding roughly 33% to the original file size. A 3 MB PDF becomes about 4 MB in the actual email. You can avoid this by hosting files externally and linking to them instead of attaching.
How many emails can I send per day with Gmail?
Free Gmail accounts allow 500 emails per day. Google Workspace (paid) accounts allow 2,000 per day. For higher volumes, you'll need to use SMTP relay services or rotate across multiple Workspace accounts.
What is sender rotation and how does it help with sending limits?
Sender rotation distributes outbound email across multiple sending accounts so no single account hits its daily cap. For example, five Gmail Workspace accounts give you an effective limit of 10,000 sends per day instead of 2,000.
What happens if my email exceeds a recipient server's size limit?
The recipient's mail server returns a hard bounce (typically a 552 SMTP error). The message is permanently rejected and counts against your bounce rate. High bounce rates damage your sender reputation and can get your domain flagged.
How does email size affect deliverability?
Large emails trigger more aggressive spam filtering, increase the image-to-text ratio (which spam filters penalize), and are more likely to time out during delivery. They also inflate your bounce rate when recipient servers enforce size limits lower than the provider maximum.
What is IP warm-up and how long does it take?
IP warm-up is the process of gradually increasing send volume on a new dedicated IP to build sender reputation. Start at 50-100 emails per day and double every few days. Most warm-up periods take 2-4 weeks for volumes under 100,000 per day.
Should I use a dedicated IP or shared IP for high volume sending?
If you're sending over 50,000 emails per day, a dedicated IP gives you full control over your reputation. Below that volume, a shared IP from a reputable provider is usually fine. Message size matters more on shared IPs because other senders' behavior affects your deliverability.
How do agent-first email platforms handle size and rate optimization compared to traditional ESPs?
Agent-first platforms like LobsterMail enforce size limits and rate caps at the API layer, returning clear error codes (like 429) that agents can handle programmatically. Traditional ESPs often rely on dashboard settings and manual configuration, which doesn't work for autonomous agents.
How do I strip images and attachments from bulk emails without losing engagement?
Replace inline base64 images with hosted image URLs. Swap file attachments for download links hosted on a CDN with a 24-48 hour expiry. The email stays small, the recipient still gets the content, and your deliverability improves.
What is Microsoft 365's High Volume Email feature?
Microsoft 365 HVE is an add-on that raises the daily sending limit from the standard 10,000 recipients to higher volumes for bulk and transactional use cases. It uses a separate sending infrastructure from standard Exchange Online mailboxes.
Can reducing email size help me stay within Gmail's daily sending caps?
Indirectly, yes. Smaller emails transmit faster, meaning your sending pipeline processes more messages in less time. They're also less likely to bounce, which helps maintain your reputation and avoids the send restrictions Google imposes on accounts with high bounce rates.
What tools can automatically audit and optimize email size before sending?
For programmatic use, libraries like mailparser (Node.js) can measure MIME size before sending. Image optimization tools like sharp or pngquant can compress attachments inline. LobsterMail enforces a 10 MB limit at the API layer and rejects oversized messages before they enter the queue.
What is the difference between send rate throttling and message size limits?
Send rate throttling limits how many messages you can send per unit of time (e.g., 2,000/day). Message size limits cap the maximum bytes per individual message (e.g., 25 MB). Both affect throughput, but size limits are per-message while rate limits are per-account or per-IP.


