Gmail中的HTML电子邮件-嵌入图像

Gmail中的HTML电子邮件-嵌入图像,gmail,html-email,Gmail,Html Email,在gmail中嵌入图像的HTML邮件——带有下面的邮件正文——只会吐出准确的文本。它不显示“body”标记中的内容 这是邮件的内容: Content-Type: multipart/related; boundary="bananarepublic12345" This is a multipart message in MIME format. --banana12345republic Content-Type: text/html; charset=ISO-8859-1 Cont

在gmail中嵌入图像的HTML邮件——带有下面的邮件正文——只会吐出准确的文本。它不显示“body”标记中的内容

这是邮件的内容:

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
内容类型:多部分/相关;
边界=“bananarepublic12345”
这是MIME格式的多部分消息。
--巴纳纳共和国
内容类型:text/html;字符集=ISO-8859-1
内容传输编码:7bit
嵌入式图像的测试
嵌入式图像的测试
--巴纳纳共和国12345
内容类型:图像/jpeg;name=big-image1.jpg
内容传输编码:base64
内容ID:
内容配置:内联;
filename=“big-image1.jpg”
/9j/4AAQSkZJRgABAQAAAQABAAD/2WBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ
我哪里做错了


谢谢你的建议

我按照相关说明操作,效果很好。总之,您需要将附件的内容ID格式化为消息ID(反过来格式化为电子邮件地址,带有@和域),并将图像的MIME部分标题中的内容ID值括在尖括号中(就像您已经做的那样)

因此,示例电子邮件可能如下所示:

Date: Fri, 2 Dec 2011 06:57:55 GMT
Message-Id: <201112020657.pB26vttQ010231@geek.co.il>
Content-Type: multipart/related; boundary="=-blabla"; type="multipart/alternative"
From: Some sender <some-sender@geek.co.il>
To: Me <me@geek.co.il>
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:some.random.id@geek.co.il"/>
<p>
</body></html>

--=-blabla
Content-ID: <some.random.id@geek.co.il>
Content-Disposition: inline; filename="image.png"
Content-Type: image/png; name="image.png"
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAA9YAAAE2CAMAAACz7PorAAADAFBMVEUAAAC9...
日期:2011年12月2日星期五06:57:55 GMT
消息Id:
内容类型:多部分/相关;边界=“=-blabla”;type=“多部分/备选方案”
发件人:某个发件人
致:我
主题:嵌入图像的HTML内容
MIME版本:1.0
--=-blabla
内容类型:text/html;charset=“utf-8”
内容传输编码:引用可打印
标题


--=-blabla
内容ID:
内容配置:内联;filename=“image.png”
内容类型:图片/png;name=“image.png”
内容传输编码:base64
Ivborw0KggoaaaAnsuhueugaa9yaaae2camaaac7poraaadadbmVeuaa9。。。

您是如何生成邮件的?手动。我只是想从gmail发送一封简单的邮件,邮件中嵌入了一个图像。在html中,等号之后的“3D”会做什么?从html部分的MIME标题可以看出,html部分是使用“引用的可打印”编码的。Quoted printable是一种最小的文本编码,它允许通过使用
=
字符分割长行来强制使用最大线宽(您可以看到这在HTML的第5行中使用)。因此,内容中的所有
=
字符(以及任何不可打印的字符)都必须通过将其写为
=
来“引用”。因此
border=“0”
被编码到
border=3D“0”
。有关更多信息,请查看RFC 2045。