Blog/ Troubleshooting & errors

Images Not Displaying in Emails: Why Clients Block Them

Nafiul HasanNafiul Hasan· 11 min read
Illustration of a blocked image placeholder in an email with a 'Download images' banner, representing the common problem of images not displaying in email clients

The short answer

Images not displaying in emails are usually blocked by your email client as a privacy measure — every image request tells the sender you opened the message. The fix depends on whether you are the sender or recipient. Recipients can add the sender to their trusted list; senders need to check their image hosting URL.

Images not displaying in emails are blocked by your client for privacy, or broken by a bad URL. Here is how to diagnose and fix both sides.

On this page
  1. 01What actually causes images to not display in emails
  2. 02Fix 1: How to always show images from a specific sender
  3. 03Fix 2: Repairing a broken image URL
  4. 04Fix 3: Images that load for you but not for recipients
  5. 05How to tell which cause you have
  6. 06Preventing it

Images not displaying in emails is almost never a broken internet connection. It is usually deliberate. Email clients block remote images by default because every image request pings the sender's server and reveals that your address is live, what time you opened the message, and sometimes where you are. The same mechanism that stops tracking pixels from loading also stops legitimate images from loading.

The sender's fix and the recipient's fix are different problems that share a symptom. If you received a message with blocked images, your client is making a privacy decision on your behalf. If contacts tell you they cannot see the images in your emails, the problem is your image URL or your hosting setup. This guide covers both halves, in the order you are most likely to need them.

What actually causes images to not display in emails#

Five causes account for the vast majority of blocked or broken email images. Match your symptom to the cause before you try a fix — a recipient cannot repair a broken URL, and a sender cannot whitelist themselves inside another person's mail client.

CauseHow to confirm itWho fixes it
Client blocks remote images by defaultA banner appears asking you to 'Download images' or 'Always show images from this sender'Recipient
Broken or expired image URLRight-click the blank placeholder, copy image address, paste into a browser — it returns a 404 or error pageSender
Image hosted behind a loginURL contains drive.google.com, dropbox.com, SharePoint, or another authenticated serviceSender
Inline image stripped by a security gatewayImage existed in the original send but disappeared for some recipients, typically on corporate networksSender — switch to an externally hosted URL
Wrong MIME type or oversized fileSome clients show a red X even after allowing images; file is over 100 KB or server returns the wrong Content-TypeSender

Fix 1: How to always show images from a specific sender#

If your email client is blocking images from a sender you trust, the fix is to add that sender to your trusted list. Your client will then download images from their address without asking each time. The steps differ by client, but the pattern is consistent: open the message, find the images-blocked banner, and choose to always allow images from that address.

  1. 1

    Gmail (desktop browser)

    Open the message. At the top of the email body, Gmail shows a banner that reads 'Images are not displayed'. Click 'Always display images from [sender address]'. Gmail saves this preference for that sender going forward. To apply it globally for all external senders, go to Settings, then See all settings, then General, and under Images choose 'Always display external images'.

  2. 2

    Gmail (mobile, iOS and Android)

    Open the message. Tap the three-dot menu in the top-right corner of the message. Tap 'Show images' to load them for this message only, or tap 'Always show images from [sender]' to make the preference permanent for that address.

  3. 3

    Outlook (Windows desktop)

    Open the message. The infobar at the top reads 'To protect your privacy, Outlook blocked automatic picture download'. Click 'Download Pictures' to load images for this message. To trust the sender permanently, right-click the infobar and choose 'Always Download Pictures from [domain]'. A global override is at File, then Options, then Trust Center, then Trust Center Settings, then Automatic Picture Download.

  4. 4

    Outlook (Mac desktop)

    Go to Outlook, then Preferences, then Email, then Reading. Under 'Automatically download pictures in HTML email from', choose 'Anyone' or 'My Contacts'. For a single sender, open their message and click 'Always Download Pictures from [domain]' in the banner at the top of the email.

  5. 5

    Apple Mail (macOS)

    Go to Mail, then Settings on macOS Ventura and later (or Preferences on older versions), then Privacy. Uncheck 'Block All Remote Content'. Apple Mail does not offer a persistent per-sender allow rule through its UI — you allow all remote content or none. For selective per-sender control, a third-party extension is needed.

Blocking images blocks tracking pixels too

When your client blocks remote images, it blocks 1x1 tracking pixels at the same time. Those pixels are how mass senders confirm your address is live, log your open time, and record your IP address. Trusting a sender disables that protection for their messages. Only add senders to your trusted list when you have a real reason to.

Fix 2: Repairing a broken image URL#

If contacts see a red X, a broken-image icon, or a blank space where your image should be — and you did not host it behind a login — the most likely cause is a broken or expired URL. Images get moved, deleted from the original host, or stored on services that generate short-lived links. The fix is to re-upload the image to a stable, public host and update the link in your template.

Before you fix it, confirm the URL is broken: paste it into a private browser window. If it returns a 404, a redirect, or any page that is not the raw image, the URL needs to be replaced.

  1. 1

    Confirm the URL is broken

    Right-click the broken image placeholder in your sent email or a preview and choose 'Copy Image Address' or 'Inspect'. Paste the URL into a private browsing window. A 404, a redirect to a homepage, or a login wall confirms the URL is broken or private.

  2. 2

    Re-upload to a stable host

    Use your email platform's built-in media library — Mailchimp, ConvertKit, Klaviyo, and similar tools all include one. Alternatively, use an S3-compatible bucket with a public-read policy or Cloudflare R2. The host must return the raw image file to any unauthenticated request.

  3. 3

    Update the template

    Replace the old URL in your HTML or template editor with the new hosted URL. One wrong character breaks it — paste rather than type.

  4. 4

    Test across two clients before sending

    Send a test to a Gmail address and an Outlook address. These two clients are the most common and have the most differences in how they handle images. If both load the image correctly, the fix held.

  5. 5

    Use a stable asset library going forward

    If your process generates a new image URL every time you export a template, switch to a hosted asset library where the URL is fixed and does not change on re-export. Regenerated URLs are a common cause of broken images in re-sent or duplicated campaigns.

Two routing paths for diagnosing images not displaying in emails: the recipient path leads to email client settings for adding trusted senders, the sender path leads to checking the image host URL and uploading to a CDN.
The sender-side fix and the recipient-side fix are separate paths — identify which one you are on before you act.

Fix 3: Images that load for you but not for recipients#

A specific and very common variant is when you can see the image in your sent copy — because you are logged in — but recipients see a blank or a login prompt. This happens when the image is stored on Google Drive, Dropbox, SharePoint, or OneDrive. Even a file set to 'anyone with the link can view' is not a public CDN link. It is a sharing permission designed for human access, and most email clients — particularly Outlook — block or fail on it.

  1. 1

    Test the URL without being logged in

    Open a private browsing window and paste the image URL into the address bar. If it redirects to a login page, shows a permissions error, or loads a sharing page rather than the raw image file, recipients without an account on that service will see the same thing. This confirms the host is the problem.

  2. 2

    Download the original file

    Get the source image file from Drive, Dropbox, or wherever it currently lives.

  3. 3

    Upload to a public image host

    Use your email platform's media library, an S3 bucket with a public-read policy, or a CDN. After uploading, test the resulting URL in a private window — it should load the raw image file with no redirect and no login prompt.

  4. 4

    Replace the URL in your email and test externally

    Update your HTML or template with the new public URL, then send a test to an external inbox that is not your own account. Your account may load the authenticated version regardless, so the external test is what confirms the fix for recipients.

Drive sharing links are not CDN links

A Google Drive share link with 'Anyone with the link — Viewer' access is a sharing permission, not a public image endpoint. Outlook blocks it outright. Gmail may load it while the sender is logged in but return a blank to recipients who have no Google account. Move the image to a purpose-built host that serves the raw file to any request without authentication.

How to tell which cause you have#

The fastest diagnosis is to match what you see on screen to one of the symptoms below and follow the pointer.

  • You see the image fine but a contact reports they cannot — the URL is likely public, but the host may be authenticated or the link may be broken in a way only you can see because you are logged into the hosting service. Test the URL in a private window.
  • You see a 'Download images' banner yourself when you open the message — your client is applying its default block. The image URL is probably fine. Use Fix 1.
  • Some recipients see images and some do not with no clear pattern — the image URL is reachable but may be slow, rate-limited, or restricted geographically. Move to a CDN with broader availability.
  • The image loads in most clients but shows a red X only in Outlook — Outlook validates image URLs more strictly than most clients. Check for redirects in the URL and confirm the server returns a Content-Type header that is an image MIME type rather than text/html.
  • The image strips for recipients on corporate networks even though you hosted it publicly — a security gateway or antivirus appliance is removing inline base64-encoded images. Switch from embedded inline images to externally hosted links that the email references by URL.

Preventing it#

For senders: use a purpose-built CDN or your email platform's media library for every image, every time. Never embed large base64 inline images or use authenticated storage links. Test every campaign by sending to a Gmail address and an Outlook address before it goes to your list. Keep image files under 100 KB where possible — oversized images are more likely to be stripped or timed out by security gateways.

For recipients: add legitimate senders to your contacts or your trusted-senders list. Most clients treat your contacts as a signal to download images automatically, making this the lowest-friction route. If you are on a corporate network, your IT team may have set a central policy and the option may not be available to you.

The reason your client blocks images by default is the same reason tracking pixels work at all: every image request is a network call that tells the sender your address is live and when you opened their message. AI Emaily's privacy model intercepts known tracking pixels before they load, so you can allow images from senders you trust without exposing your read receipt to bulk mailers you did not invite. We build AI Emaily — how the privacy model handles tracking is in the documentation linked below.

Frequently asked

Nafiul Hasan

Written by

Nafiul Hasan

Nafiul Hasan is an entrepreneur and AI automation system builder with 10+ years of experience turning messy, manual workflows into reliable automated systems. He designs and ships AI enterprise solutions end-to-end — the agent logic, the data plumbing, and the product people actually use — and founded AI Emaily to give busy professionals their attention back. He writes here from the builder's seat: what works, what breaks, and how to put AI to work without giving up control.

EntrepreneurAI Automation System BuilderAI EnthusiastBuilds AI Enterprise Solutions10+ years experience
More from Nafiul
Ready when you are

Want tracking pixels blocked before they load?

AI Emaily's privacy model intercepts tracking pixels on inbound mail and lets you control which senders load images automatically. Try it free for 7 days — card required, nothing charges if you cancel before day 7.

  • 7-day free trial
  • Cancel anytime
  • Every provider