This is, unfortunately, an extremely common question.
In fact, it happens to me from time to time as well. Someone forwards me an email with humorous pictures (or better yet, pictures of Corgis), and some or all of them don’t display. It’s both frustrating and puzzling when it happens.
Email has evolved over the years, and as a result, things aren’t always as compatible as we’d like them to be.
I’ll review where the incompatibilities are most common, some of the ways pictures can get lost, and one or two workarounds that might help you view those all-important Corgi pictures that someone just sent you.
Become a Patron of Ask Leo! and go ad-free!
Three reasons for pictures not showing in email
There are three common reasons why pictures don’t display in an email.
- Issues relating to how, and whether, images accompany an email message
- Problems converting between email formats
- Settings in your email program1
Before we look at each of those, we need to define a couple of things.
Attachments versus “in line” images
Images can be placed in email in either of two ways:
- Attachments. These are files of any kind that accompany an email message. They usually appear as icons after the end of the message body, and you typically need to click on the icon to open or display them. Some email programs recognize attachments that happen to be images, and either display them after the message or display thumbnails of the images.
- In-line. Images placed in-line are part of the email message body. Interspersed with the text of the message, sometimes with the text wrapping around the image, these are meant to display immediately as part of the message as you read it.
There are three formats that can be used to send email:
- Plain Text email is, as the name implies, plain text and nothing more. No formatting, no pictures, all in a single, unspecified font. All email programs support plain text emails. Images can be included, but only as attachments.
- Rich Text email is a Microsoft format that works well between Microsoft email clients. It added “richness” to email by supporting colors, fonts, formatting, sizes and much more. Images can be embedded into the body of a rich text email, as well as attached.
- HTML email uses the same technology used to create webpages. Almost everything you can do with a webpage can be done in HTML mail: colors, fonts, formatting, and more. Like rich text email, images can be embedded into the body of HTML email, as well as attached. HTML email is by far the most common format used for email today.
It’s also possible to send a single email containing the same message encoded in different ways. Called “multi-part mime” and handled transparently by the email program sending the message, it’s typically used to include both HTML and plain text formats. The email program at the receiving end determines which format to display.
Problem 1: where the image lives
When we receive an email, we think of it as “containing” the images included. In other words, the images we see must have been sent with the email message itself.
That’s not always the case.
On the web, images are not part of the “.html” file that makes up a webpage. Instead, that file contains instructions on where to locate the image file, and then where on the page to display it. For example, if you view this page on the Ask Leo! website, you’ll see an image of a post-it note above. The actual image is a separate “.jpg” file, not actually included in the HTML that makes up this page.
Instead, the HTML includes a reference to the file — instructions that say, in effect, “go fetch this file: https://askleo.askleomedia.com/wp-content/uploads/2004/06/no_image-300×245.jpg, and display it here.” When the page is displayed in your browser, it’s your browser that interprets all that and fetches the image file as instructed by the page’s HTML code.
The result is that there are two ways images are used with HTML-formatted email (and, to a large extent, Rich Text email as well).
Images hosted elsewhere
In this approach, HTML email works exactly like a webpage: the email message contains a reference to the image kept out on the internet somewhere, which is then downloaded and displayed when you view the email.
If the mail program can’t locate the picture, the result is a red X. Possible causes include:
- The picture has been removed from wherever it had been placed.
- The server holding the picture is off-line.
- Your machine is off-line and unable to connect to the internet.
All have the same result: the picture can’t be found, so the image cannot be displayed.
Images accompanying the message
Other kinds of HTML emails don’t use an internet location for an image; instead, the images are included with the email as “hidden” attachments. Special coding tells the email program to display them. This results in larger emails — often much larger — since the images are included with the message; but there’s no concern about locating the images, since they came with the email.
The problem here is that those “special codes” aren’t always as standard as we might expect. The result is that email encoded in this way by one email program may not actually display correctly by another. The result? The infamous “red x”.
Problem 2: converting email formats
Since we have three possible email formats (Plain Text, Rich Text and HTML), it should come as no surprise that, with the exception of Plain Text, not all formats are supported by all email programs. If your email program doesn’t understand a format, it does its best, which usually means not displaying the pictures in favor of at least displaying the text.
Many non-Microsoft mail programs don’t support Microsoft’s Rich Text. In this case, the program may display a Plain Text version of the email instead, without the pictures. Similarly, if an HTML email is sent to someone whose email isn’t set up to handle HTML email, they may see a Plain Text version, or they may see raw HTML formatting codes sprinkled throughout the message.
The good news is that today, most email is in either plain text or HTML, and most email programs recognize both properly.
Problem 3: settings in your email program
Since HTML email can be designed so that images are fetched from servers on the internet when you look at an email, fetching those images acts as a notification that you’ve looked at the email.
Spammers love this. They can send you some spam, and if the image it contains is fetched from their server, they know you opened their email. If they’re sending spam to millions upon millions of email addresses — some of which are good, others of which are not — they now know that the email they sent to your email address worked. You can expect more spam.
Email programs counter this by including options not to display images that need to be fetched remotely. Those options, which vary between email programs, include behaviors such as:
- Never displaying images unless you explicitly click on something to do so.
- Never displaying images in email considered potentially suspicious or spam
- Displaying images only from senders you have indicated are safe, or are in your address book
The result in all these cases, and probably some scenarios I’ve missed, is that your email program will display a red “X”, or something similar, in place of images, until you explicitly tell it to do otherwise.
What to do?
By now, you can see there are a lot of reasons that pictures might not show up in email. Unfortunately, they probably seem like a lot of technical reasons, many of which you might not even have control over.
When you can’t see that cute Corgi picture Aunt Lucy sent you, here’s a short list of things to try.
- Make sure your internet connection is working. Try visiting a webpage (like askleo.com) and see if it loads. If not, and if the email you’re looking at is trying to fetch images remotely, that could easily be the cause.
- Make sure your email program is configured to display images. Exactly how to do this will vary based on what email program you’re using.
- Make sure your anti-malware tool is not interfering with image display. Some attempt to block images from questionable sources.
- If you have the option, try looking at the email using a different email program. If you use a desktop email program, try using your email provider’s web interface.
- Try forwarding the email to another email address you use on a different email service. Sometimes, for reasons unknown, simply forwarding it will cause the images to be displayed before you even hit “Send”. In other cases, the other email service might be able to correctly interpret the images when your normal service cannot.
And finally, as a last resort, consider asking the sender to send the images as attachments rather than as inline images. While a bit of a burden, attachments are significantly less of a problem.
Subscribe to Confident Computing! Less frustration and more confidence, solutions, answers, and tips in your inbox every week.
I'll see you there!