Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HTML Email in Gmail - embedding images

HTML mail with an embedded image in gmail - with the following email body - just spits out the exact text. It does not show what's inside the "body" tags.

This is the content of the mail:

Content-Type: multipart/related;

boundary="bananarepublic12345"

This is a multipart message in MIME format.

--banana12345republic

Content-Type: text/html; charset=ISO-8859-1

Content-Transfer-Encoding: 7bit


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
      "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head> 
     <title>testing embedded image</title>
</head>
<body bgcolor="#000">
    <h1> Testing Embedded Image</h1>
    <img src="cid:mambo" alt="ALTERNATE TEXT" >
</body>
</html>

--bananarepublic12345

Content-Type: image/jpeg; name=big-image1.jpg

Content-Transfer-Encoding: base64

Content-ID: <mambo>

Content-Disposition: inline;

filename="big-image1.jpg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ...//2Q%3D%3D

Where am I going wrong?

Thanks for any suggestion!

like image 504
Van de Graff Avatar asked Sep 03 '11 11:09

Van de Graff


1 Answers

I've followed the instructions in question 4018709 and it worked nicely. To sum it up, you need the content-ids for the attachment to be formatted like message IDs (which in turn are formatted like email addresses - with an @ and a domain), and have the content ID value in the MIME part header of the image enclosed in angle brackets (like you already do).

So a sample email may look like this:

Date: Fri, 2 Dec 2011 06:57:55 GMT
Message-Id: <[email protected]>
Content-Type: multipart/related; boundary="=-blabla"; type="multipart/alternative"
From: Some sender <[email protected]>
To: Me <[email protected]>
Subject: HTML content with embedded images
MIME-Version: 1.0

--=-blabla
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<html><body>
<h1>Header</h1>
<h2><a href=3D"http://geek.co.il">link</a></h2>
<p>
<img border=3D"0" =
src=3D"cid:[email protected]"/>
<p>
</body></html>

--=-blabla
Content-ID: <[email protected]>
Content-Disposition: inline; filename="image.png"
Content-Type: image/png; name="image.png"
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAA9YAAAE2CAMAAACz7PorAAADAFBMVEUAAAC9...
like image 157
Guss Avatar answered Sep 22 '22 19:09

Guss