2011-09-03 61 views
6

帶有Gmail中的嵌入式圖像的HTML郵件 - 帶有以下電子郵件正文 - 只是吐出確切的文字。它沒有顯示「body」標籤內的內容。Gmail中的HTML電子郵件 - 嵌入圖像

這是郵件的內容:

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 

我要去哪裏錯了

感謝您的任何建議!

+0

你是如何生成的郵件? – itsols

+0

手動。我只是試圖從Gmail中發送一封簡單郵件,其中包含一個嵌入式圖像。 –

回答

7

我按照問題4018709中的說明操作,效果很好。綜上所述,您需要將附件的content-id設置爲消息ID(反過來,它們的格式如電子郵件地址 - 帶有@和域),並在MIME部分頭中包含內容ID值用尖括號括起來的圖像(就像你已經做過的那樣)。

所以樣本電子郵件可能是這樣的:

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... 
+0

那個「3D」在你的html的等號後做了什麼? – doABarrelRoll721

+1

正如您可以從HTML部分的MIME標頭中看到的那樣,HTML部分使用「quoted-printable」編碼進行編碼。 Quoted-printable是一種最小的文本編碼,它允許通過用長度爲'='的字符分隔長行來強制最大行寬(並且您可以看到這用於HTML的第5行)。因此,內容中的所有'='字符(以及任何不可打印字符)必須通過將它們寫爲'= '來「引用」。所以'border =「0」'被編碼成'border = 3D「0」'。有關更多信息,請查看RFC 2045。 – Guss

相關問題