Why do some people see duplicated images when I send messages from Outlook for Mac?

Both Outlook 2011 for Mac and Outlook 2016 for Mac have a bug that can cause duplicated images in some cases.

The duplicated images can appear when you send messages to people who are not using Microsoft software to read the messages. For example, the bug can happen if you send a message to someone using an iPhone, but will not happen if the recipient is using Outlook, or if a Microsoft Exchange mail server is anywhere in the mail path.

Microsoft is aware of this bug (you can find longstanding reports of it on their site in threads like this one), but there’s currently no known workaround.

A technical description of the problem

Other people have documented this bug in detail (here and here, for example), but the short version is that Outlook for Mac sends images differently than Outlook for Windows. The Mac version uses the wrong outer “MIME type” for the message body.

An Outlook Mac HTML message with an image has this MIME structure:

Content-type: multipart/mixed
-- Content-type: multipart/alternative
---- Content-type: text/plain
---- Content-type: text/html
-- Content-type: image/png

In other words, the outer message is "multipart/mixed", which then contains a "multipart/alternative" part (which tells a rendering agent to display either the "text/plain" or the "text/html" part), then it contains an "image/png" part.

The "text/html" part contains an <img src="cid:..."> that refers to the "Content-ID" of the "image/png" part, so the image gets rendered inline as part of the HTML.

The trouble is that the image then gets rendered a second time when some renderers (like the iPhone) reach the "image/png" part, although other renderers (notably all Microsoft code) choose not to display it a second time (apparently based on the heuristic that it's already been displayed once).

Compare this to a message sent by Outlook for Windows:

Content-type: multipart/related
-- Content-type: multipart/alternative
---- Content-type: text/plain
---- Content-type: text/html
-- Content-type: image/png

Everything is identical except that the outer MIME type with Outlook for Windows is "multipart/related", instead of the "multipart/mixed" the Mac version sends.

That's the difference: "multipart/related" as sent by Outlook for Windows is correct and stops renderers from displaying it a second time; "multipart/mixed" as sent by Outlook for Mac is incorrect and makes some renderers display it again.