From MozillaZine Knowledge Base
- This article was written for Thunderbird but also applies to Mozilla Suite / SeaMonkey (though some menu sequences may differ).
If you are unable to view images in messages you've received
- For images embedded in messages: make sure that the setting for "View -> Message Body As" is set to either "Original HTML" or "Simple HTML".
- For images attached to messages: go to the "View" menu and make sure that "Display Attachments Inline" is checked.
- Thunderbird blocks all remote images by default. You can enable remote images for an email address by clicking on "Click here to always load remote images from ...". That adds an entry to the address book that has "Allow remote content" checked. You might want to create an images address book and select it instead of the personal address book if it's for a newsletter that you can't reply to.
- If you are in offline mode, try changing to online mode: go to "File -> Offline" and make sure that "Work Offline" is not checked. Alternatively, you can click on the connection icon that appears on the Status Bar (normally at the bottom of the window). This is especially important for remote images.
- Messages marked as Junk are normally "sanitized", meaning that they are displayed without any images or other HTML formatting. To change this behavior, go to "Tools -> Junk Mail Controls", click on the "Settings" tab, and uncheck the box for "When displaying HTML messages marked as Junk, sanitize the HTML".
- If you are using Thunderbird with a proxy, it is possible that this is the source of the problem. Try adjusting your proxy settings and see if this helps. A few related forum threads are here, here, and here.
Select a HTML message that is supposed to have an image. Save it as a HTML file using File -> Save as -> File. You will need to select "HTML Files" in the "Save as type" list box when you do that, otherwise it defaults to a .EML file. Double click on it using windows explorer or whatever file manager you use. If you don't see an image then there might be a problem with the message.
If none of that helps
- Either install the Show All Body Parts add-on or set mailnews.display.show_all_body_parts_menu true using the config editor. Select View -> Message Body As -> Show All Body Parts. This works around problems showing attachments in some multipart/related messages However, it messes up how the message is displayed so use it only when needed. 
- Verify that a firewall, proxy, or ad filter didn't strip the image. Use File -> "Save Message As" to save the message as an HTML file with a .HTML file extension. Then double click on it in Windows Explorer and see if it displays the image.
- If it's an embedded image, use View -> Message Source and find the headers for the MIME body part (the image). This will typically be after the message body and just before a big block of characters all run together (the base64 encoded image). Look for the Content-Type: header. It's used to tell Thunderbird what type of data it is so that it can pick the correct viewer. For example, a jpeg file would have Content-Type: image/jpeg;. If it has Content-Type: application/octet-stream; that means it's generic 8-bit data so Thunderbird would ignore it. You'd have to either change the Content-Type: header or get whoever sent you the message to resend it using the correct headers.
Forwarding inline or replying to an HTML message with remote images
- You can change the way how images are included while composing the message. Double-click on the image to open the Image Properties dialog. Then check "Attach this image to the message" if it is cleared. This will ensure that the message goes out with the image actually downloaded and attached to the message rather than just including a reference to the remote content.
Thunderbird only: For an easier way to toggle the settings for viewing messages as HTML/plain text or for blocking remote images, try the Buttons! extension. It gives you buttons that you can add to the toolbar to change these settings at a single click.