We have created a system that allows embedding an image in an outgoing email.
Here is the original message our system creates. This example contains an image attachment and an embedded image.
Mime-Version: 1.0
From: ...
To: ...
CC:
Subject: test
x-sender: ...
x-mailer: ...
Content-Type: multipart/mixed; boundary="-------------...A128803765634794"
---------------...A128803765634794
Content-Type: multipart/related; boundary="-------------...B128803765634796"
---------------...B128803765634796
Content-Type: text/html; charset="UTF-8"
<p style="margin: 0; padding: 0"><img src="cid:083.gif" alt="" /></p>
---------------...B128803765634796
Content-type: image/gif; name="083.gif"
Content-ID: <083.gif>
X-Attachment-Id: 083.gif
Content-Disposition: Embedded; filename="083.gif"
Content-transfer-encoding: base64
............................................................................
............................................................................
......................................................
---------------PineappleCodeB128803765634796--
---------------PineappleCodeA128803765634794
Content-type: image/gif; name="waiting.gif"
Content-Disposition: Attachment; filename="waiting.gif"
Content-transfer-encoding: base64
............................................................................
............................................................................
......................................................
---------------PineappleCodeA128803765634794--
Is there another header I should add or rule I should follow?
I noticed one thing... I would guess that it is part my issue and part Gmails. but at any rate I would like to make it stop happening
When the email is received into Gmail I get
Images are not displayed.
Display images below - Always display images from ...
The embedded image is then shown as an image attachment (just like my other image attachment)
I click Display Images Below and my image is shown in the body of the email but not removed from the Attachments section.
If I go back to my in box and back to the email it looks fine.
I do not see why it does that. It it not a linked image (from external URL) and it does not happen when sending embedded images from Gmail to Gmail. That is what makes me think I might be doing somthing wrong and I am afraid that it may affect other recipients.
I've had success with exactly the same headers as you're using, with the following differences:
Embedded
is not a valid value for the Content-Disposition
header. attachment
should be fine. inline
should also be fine, though I've usually seen attachment
for multipart/related
embedded images.
The value of the Content-ID
header is supposed to be in the same format as a message-id, which in turn looks very much like an email address. <083.gif@yourmailer>
has a better chance of working with most mailers.