How to Compress a JPG for Email Attachment Size Limits
Last reviewed 2026-05-06. Targeted at the moment a 7-10 MB JPG bounces off Gmail / Outlook / iCloud / corporate-mailbox size caps. Routes the actual compression work to Compress Image (server-side AI optimizer, JPEG only).
What email attachment limits actually apply in 2026
The size cap that matters is the smaller of the sender's send limit and the recipient's receive limit - not just the one on your own account. Both ends must accept the byte count or the message bounces with a 552 / 5.3.4 / "message size exceeds fixed maximum" reply. The 2026 reference numbers for the dominant providers:
- Gmail: 25 MB send / 50 MB receive. Beyond 25 MB, Gmail intercepts the attach step and offers a Google Drive link instead of a true attachment. The Drive route works for any recipient, but it places the file on Drive rather than in the email body, which some compliance setups disallow.
- Outlook.com / Microsoft 365 personal: 20 MB attachment cap. The Outlook web client suggests OneDrive when over 33 MB; below 33 MB it tries a true attach.
- Microsoft 365 business / Exchange Online: default 25 MB send + 25 MB receive, but tenants commonly tighten this to 10 MB or 15 MB through transport rules. Test against your specific recipient before relying on the default.
- iCloud Mail: 20 MB attachment cap. iCloud's Mail Drop bumps the practical ceiling to 5 GB by serving a download link for 30 days, but the recipient must click through.
- Yahoo Mail: 25 MB send.
- Corporate firewalls / spam appliances: often clamp at 10 MB sitewide regardless of provider settings - the most common cause of "but it works fine on Gmail" delivery failures.
The practical implication: design for the recipient. A photo that comfortably fits Gmail's 25 MB will still bounce off a 10 MB corporate gateway. When in doubt, compress to under 8 MB and the file will pass essentially every consumer / business mailbox.
Why JPG file size is dominated by quality, not pixel count
JPEG (the lossy image format defined by ITU-T T.81 / ISO/IEC 10918-1) compresses by dividing each image into 8×8 pixel blocks, transforming each block to frequency space (the Discrete Cosine Transform), and dividing the frequency coefficients by a per-frequency quantization table. Higher integers in the table mean more aggressive rounding and more bytes saved; lower integers mean finer detail preserved at the cost of file size. The "quality" number you see in image editors (Photoshop, GIMP, ImageMagick, every web tool) is a 1-100 dial that scales these quantization tables. It is a far stronger lever on file size than resolution: a 12 MP iPhone photo at quality 95 is typically 4-6 MB; the same photo at quality 75 is typically 1-2 MB. The pixel count did not change. The bytes-per-pixel did.
This is why "shrink the image to send it" usually means "lower the quality dial", not "scale the resolution down". Scaling pixels down loses information you cannot recover; lowering quality discards information you would not have noticed on the receiving end. For email delivery the second is almost always the right knob.
Quality-value cheat sheet for email-attachment delivery
The IJG cjpeg -quality convention is the practical scale most JPG tools follow. Use these as starting points keyed to mailbox cap; verify the actual output size and re-encode one notch lower if needed.
- Quality 90 (high) - visually near-lossless on a typical phone-camera photo. Expect 30-50% reduction vs the camera's own save (which is often quality 92-95). Use only when the recipient mailbox is unusually generous (50+ MB).
- Quality 80 (the web default) - standard for image-heavy websites; barely visible artifacts on smooth gradients at 100% zoom. Expect 50-70% reduction. Comfortable for Gmail / Yahoo (25 MB) on most photos.
- Quality 75 (the email sweet spot) - the sweet spot for email attachments. 60-80% reduction; artifacts only visible on a calibrated monitor at 100% zoom on smooth-gradient regions. Lands almost any phone-camera JPG under Gmail's 25 MB cap. Recommended starting point for the first re-save.
- Quality 65 (corporate-cap range) - 70-85% reduction; suitable when the recipient is behind a 10 MB or 15 MB gateway and the photo subject is a person, place, or product where minor smoothing of the background is acceptable.
- Quality 55 and below - visible blockiness on smooth areas (skies, walls), color banding, ringing halos near sharp edges. Use only as a last resort for a screenshot or document-photo that does not need to be photo-realistic.
The JPEG Compression Level Checker reads back the quality value any existing JPG was saved at - useful when you want to know whether a photo someone forwarded you has compression headroom left, or has already been pushed past the visible-artifact threshold and re-encoding will only make it worse. See also How to tell if a JPG was compressed too much for the four visible signs of over-compression.
Step-by-step: compressing one JPG for email
- Confirm the recipient cap. Gmail (25 MB) and Yahoo (25 MB) are forgiving; iCloud and Outlook web (20 MB) are intermediate; corporate Exchange tenants commonly clamp at 10 MB or 15 MB. If unknown, target under 8 MB as a safe floor.
- Open Compress Image. The tool accepts
.jpegand.jpginput and uses a server-side AI quality optimizer that tunes JPEG quantization tables behind the scenes (the IJG-equivalent quality value is what changes; the underlying encoder is SlimJpg / cjpeg-derivative). - Upload the JPG. Drag it into the upload zone, or click to browse. The file is uploaded over HTTPS to
service.us-east-1a.freetool.onlinefor processing; the tool does not run in the browser - the compression is done on the server and the result is streamed back as a download link. Files are deleted server-side after a short retention window (theweb.minsToDelFilevalue emitted at page load). - Pick a compression level. Start with the moderate / balanced preset (corresponds to roughly quality 75 in IJG terms). For a 10 MB phone JPG this typically yields a 2-4 MB output - well under every mainstream cap.
- Click Compress. Wait for the upload-progress bar to finish, then for the side-by-side preview to render. The output is also surfaced as a download anchor.
- Verify the size. Hover over the download link or check the file in your downloads folder. If the result is still over your target cap, re-run with one notch lower quality (65 instead of 75). If it is comfortably under, attach as-is.
- Attach and send. The downloaded JPG is a regular file - drag-drop into Gmail / Outlook / Apple Mail compose, or use the standard "Attach file" button.
For multiple photos in one email, compress each individually rather than zipping them: most email clients render JPGs inline in the preview pane (a recipient win), and zipping JPGs barely shrinks them since JPG is already entropy-coded. If you do need a single bundle, see How to Compress a Folder for Email for the folder-mode flow with Zip File.
When quality compression is not enough
A small fraction of JPGs are file-size-stuck because of resolution, not quality. The two diagnostic tells:
- The original is already low-quality. If JPEG Compression Level Checker reports the source as quality 70 or below, re-encoding will mostly add generation loss without saving meaningful bytes. The right move is "scale the resolution down" (e.g., from 12 MP to 4 MP) or "ask the sender for the original RAW / HEIC".
- The image is a panorama / very high-resolution scan. A 50 MP iPhone Pro panorama or a 600 DPI document scan can stay 8-12 MB even at quality 60 because there is genuinely a lot of information per byte saved. For these, scale to a lower pixel count (3-6 MP for screen viewing, or 200 DPI for documents) before running through the compressor.
For a JPG that is small in pixels but large because the camera saved it at quality 95+ (common with iPhone "High Efficiency: Off" or DSLR JPEG-only modes), the quality-dial path above resolves it in one pass without losing pixels.
Privacy and the email-attachment use case
Photos sent over email are not private: SMTP relays log message metadata, recipients can forward, mail providers index attachments for search. The Compress Image server pipeline adds one transient hop - the JPG is uploaded over HTTPS to service.us-east-1a.freetool.online, processed, and deleted server-side after the retention window. For photos with sensitive content (medical scans, legal documents, identification), the right channel is rarely an email JPG attachment regardless of compressor; consider an end-to-end encrypted file-transfer service. For ordinary photos (family, work, products), the compress-and-attach flow above is standard practice.
Related reading
- How to Compress a Folder for Email - folder-mode (multiple files into one ZIP)
- Compress JPEG Without Losing Quality - Quality vs Size
- How to Choose a Compression Level
- How to Tell if a JPG Was Compressed Too Much
- When to Compress vs Convert an Image
- Compress Image (the tool)
Why trust these tools
- Ten-plus years of web tooling. The freetoolonline editorial team has shipped browser-based utilities since 2015. The goal has never changed: get you to a working output fast, without an install.
- Truly in-browser - no upload. Every file-processing tool on this site runs in your browser through modern Web APIs (File, FileReader, Canvas, Web Audio, WebGL, Web Workers). Your photo, PDF, audio, or text never leaves your device.
- No tracking during tool use. Analytics ends at the page view. The actual input you paste, drop, or capture is never sent to any server and never written to any log.
- Open-source core components. The processing engines underneath (libheif, libde265, pdf-lib, terser, clean-css, ffmpeg.wasm, and others) are public and audit-able. We link to each one in its tool page's footer.
- Free, with or without ads. All tools are fully functional without sign-up. The Disable Ads button in the header is always available if you need a distraction-free run.