Email Attachment Limits Explained
A file that sends without issue to one person and immediately bounces to another isn't usually a sign anything's broken. Attachment limits genuinely vary between providers, and both sides of the exchange have their own separate limit that has to be satisfied.
Typical limits by provider
- Gmail: 25MB per message (Google automatically converts larger files to a Drive link instead of blocking the send outright).
- Outlook / Outlook.com / Exchange: generally 20MB for personal accounts, often 10MB on business Exchange accounts specifically.
- Yahoo Mail: around 25MB.
- iCloud Mail: 20MB natively, though Apple Mail can offer to send larger files via Mail Drop instead, similar in concept to Gmail's Drive conversion.
- Most other providers: somewhere in the 20-25MB range, though it's always worth checking your specific provider's actual documentation if you're regularly sending large files.
Why the same file can succeed and fail depending on the recipient
Sending is really a two-sided limit: your outgoing server has to accept the file, and separately, the recipient's incoming server has to accept it too. A 22MB file might sail through Gmail's 25MB limit but get rejected by a recipient on a business Exchange account capped at 20MB. Nothing wrong on your end — it's genuinely a mismatch between the two limits involved.
What to actually do about it
- Compress the file first if it's something that compresses well — a ZIP archive, or reduced-quality photos/video.
- Use a cloud storage link instead — Google Drive, Dropbox, OneDrive, iCloud — for anything genuinely large. This sidesteps attachment limits on both ends entirely.
- Split large files across multiple emails if a link genuinely isn't an option for some reason.
A related, easy-to-miss cause: total message size, not just the file
Some limits apply to the entire message, not the raw attachment file size alone — and email attachments get encoded in a way that adds roughly 30-40% to their actual file size in transit. A file sitting right at a provider's stated limit can still get rejected because of this encoding overhead. If you're right at the edge, it's worth giving yourself some margin rather than cutting it exactly to the limit.