Html 电子邮件签名中的base64编码图像

Html 电子邮件签名中的base64编码图像,html,image,email,base64,Html,Image,Email,Base64,我必须包括一些图像(公司标志等)在电子邮件签名。我曾经遇到过各种各样的问题,比如使用问题中的电子邮件系统生成的嵌入图像(它们通常作为附件发送)和链接图像(需要在收到的电子邮件中显示它们的许可) 我刚刚看到一些来自exchange的电子邮件,其中包含徽标的base64图像表示,并使用标签进行显示。如果可能的话,我正在寻找一些关于如何在电子邮件签名中做到这一点的信息(我如何生成base64版本的徽标作为开始,以及我需要什么代码才能让它工作) 我尝试过一些简单的事情,比如 <body> &

我必须包括一些图像(公司标志等)在电子邮件签名。我曾经遇到过各种各样的问题,比如使用问题中的电子邮件系统生成的嵌入图像(它们通常作为附件发送)和链接图像(需要在收到的电子邮件中显示它们的许可)

我刚刚看到一些来自exchange的电子邮件,其中包含徽标的base64图像表示,并使用标签进行显示。如果可能的话,我正在寻找一些关于如何在电子邮件签名中做到这一点的信息(我如何生成base64版本的徽标作为开始,以及我需要什么代码才能让它工作)

我尝试过一些简单的事情,比如

<body>
<span>
<img src=.... >
</span>
</body>


但是我得到的只是alt文本,所以我显然在这里做错了什么。

图像应该作为附件嵌入到消息中,如下所示:

--boundary
Content-Type: image/png; name="sig.png"
Content-Disposition: inline; filename="sig.png"
Content-Transfer-Encoding: base64
Content-ID: <0123456789>
Content-Location: sig.png

base64 data

--boundary
<img src="cid:0123456789">
——边界
内容类型:图片/png;name=“sig.png”
内容配置:内联;filename=“sig.png”
内容传输编码:base64
内容ID:
内容位置:sig.png
base64数据
--边界
并且,HTML部分将引用如下图像:

--boundary
Content-Type: image/png; name="sig.png"
Content-Disposition: inline; filename="sig.png"
Content-Transfer-Encoding: base64
Content-ID: <0123456789>
Content-Location: sig.png

base64 data

--boundary
<img src="cid:0123456789">

在某些客户端中,src=“sig.png”也可以使用

您基本上会有一个多部分/混合、多部分/备选、多部分/相关消息,其中图像附件位于相关部分

客户端也不应该阻止此映像,因为它不是远程映像

或者,这里有一个作为mbox文件的多部分/备选、多部分/相关示例(另存为windows换行格式,并在末尾放一个空行。并且,不使用扩展名或.mbs扩展名):

来自
发件人:from@example.com
致:to@example.com
主题:签名中嵌入图片的HTML消息
MIME版本:1.0
内容类型:多部分/备选;边界=“备选边界”
这是一条包含多个MIME格式部分的消息。
--备选边界
内容类型:文本/纯文本;charset=“utf-8”
内容传输编码:8比特
测试
-- 
[圣诞树图片]
--备选边界
内容类型:多部分/相关;边界=“相关的边界”
--相关边界
内容类型:text/html;charset=“utf-8”
内容传输编码:8比特
试验

--

--相关边界 内容类型:图片/png;name=“sig.png” 内容配置:内联;filename=“sig.png” 内容位置:sig.png 内容ID: 内容传输编码:base64 R0lGODlhKAA8AIMLAAD//wahaabkaabraacuac1aadeaad/AGsAAP8zM///AP// ///M////+ZAMwAACH/C05FVFNDQVBFMi4wAwGgDwAh+QQJFAALACWAAAAAAAAA8 AAME+3DJSWt1Nuu9Mf+g5IzK6IXopaxn6orlKy/jMc6vQRy4GySABK+HAiaIoQdg Uuscbakaytbwbgyga2agsgqo0wmh7k0yeuj0suxroafqb1vycbn21ki8vofndr c1AKGH8ETEBGO7O2JAU2UFAGRODGOAxV4PD2QYAGL7VP0JDKENFWADO0QCAQOQ DICDGIVGYBALOXSWR5R1VIUBCHWH8HLQWFRLYABVOWAMACKIJAAEHAX0RPZ1B oQSg3Z04AuFqB2IMd+ATLWUBTPAHKDUTBWGM1BTOA5YHBR374ZAXHAQRVLZA53 Owteajhdizys09Basyq+94HFAQ3CRT57SWDCT2投资项目MVF6SYEEPDQIFDDO62 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 2根据BKBRAAAIF4ZQM95J3MGSGFW CHKGSG9SAWRHEXMGNZQA7 --相关边界-- --备选边界--
您可以将其导入Sylpheed或Thunderbird(使用导入/导出工具扩展)或Opera的内置邮件客户端。然后,以Opera为例,您可以切换“首选纯文本”以查看HTML和文本版本之间的差异。无论如何,您将看到HTML版本使用了sig中的嵌入式pic。

重要信息 下面我的回答显示了如何使用数据URI嵌入图像。这对web很有用,但对大多数电子邮件客户端来说,无法可靠地工作。用于电子邮件目的


Base-64数据在
img
标签中是合法的,我相信您的问题是如何正确插入这样的图像标签

您可以使用在线工具或几行代码来生成base 64字符串

语法是这样的
import javax.mail.util.ByteArrayDataSource;
import org.apache.commons.mail.ImageHtmlEmail;
...
ImageHtmlEmail email = new ImageHtmlEmail();
byte[] qrImageBytes = createQRCode(); // get your image byte array
ByteArrayDataSource qrImageDataSource = new ByteArrayDataSource(qrImageBytes, "image/png");
String contentId = email.embed(qrImageDataSource, "QR Image");