Html 电子邮件签名中的base64编码图像
我必须包括一些图像(公司标志等)在电子邮件签名。我曾经遇到过各种各样的问题,比如使用问题中的电子邮件系统生成的嵌入图像(它们通常作为附件发送)和链接图像(需要在收到的电子邮件中显示它们的许可) 我刚刚看到一些来自exchange的电子邮件,其中包含徽标的base64图像表示,并使用标签进行显示。如果可能的话,我正在寻找一些关于如何在电子邮件签名中做到这一点的信息(我如何生成base64版本的徽标作为开始,以及我需要什么代码才能让它工作) 我尝试过一些简单的事情,比如Html 电子邮件签名中的base64编码图像,html,image,email,base64,Html,Image,Email,Base64,我必须包括一些图像(公司标志等)在电子邮件签名。我曾经遇到过各种各样的问题,比如使用问题中的电子邮件系统生成的嵌入图像(它们通常作为附件发送)和链接图像(需要在收到的电子邮件中显示它们的许可) 我刚刚看到一些来自exchange的电子邮件,其中包含徽标的base64图像表示,并使用标签进行显示。如果可能的话,我正在寻找一些关于如何在电子邮件签名中做到这一点的信息(我如何生成base64版本的徽标作为开始,以及我需要什么代码才能让它工作) 我尝试过一些简单的事情,比如 <body> &
<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
BHwZApjEhjW94RyQTWK/FPx+Ahpg09GdOzoJ/ESx0JaOQ42e2tsiEYpCEFwAGi04
8G6GSGNOVD0GBEVJCPR2BIAKGORMSNXPO3RBHGHZIMFPNLKBG2BAUQ2XDMLWK1Z
ooZu1sRz6xWlxd4U9GIHwOmdzFgCFKCERYNoeo2BZsPp0KY+A/OAFZDYWKJZBO
1mQXdlojvxNYiXrD8I+2UEVTDFJQKSID0xJXUIWJJM6CZBVEBQGWBOP1ZPPC8RKT
YN5RCpS6XiyMht093o8KcFFf/vKE0dCmaLeWYhQMwbeQaHLRfNk9o5Q13lQGklFQ
AMLFRLCWCN5QSWMGXS2JKQFL9NEAGXSDEIWLAHAPPJWIFRO6FVEUN0VKL4UABA
CAJUIAIAFM2YQOGZCOLCHNSYB1ASBB5JFRZBACH5BAKUAASALAAAAAAADWA
AwT7cMlJa3U2670x/6DkjKQXnleJrqnJruMxvq8xHDQbJEyC5yheAnh6MI5HYkgg
YNGGSO7BCGAMBNHNYGA7ELPZYFBLG/DFVlareBPHOAEGxDYCHQP90IaoNYCOGB
AACFHX8HBWOGEGYADHRIEJZOBXXMPWRYYQ8PZMSZZHMCNQBITP2JSGIBN5BVBFWC
BVKGAQJPIVV2RFCRCCQ1/SXUHAGQFAL45BNCFNGSFW8WASOKBB59LHOVANQFDNCF
AJ05AT5MSHPICESQLWUBZF6NVNXSUIWVTDYGSXPHIMSRUOWAC436HMZU+yGDQYF
81FhV+AEVZUM3OHOZBD7W7ZS9VAUIHON4PWE38P0SRLCQCQSCIBFUUBFGERYJ7E
OJHG2YOG1HQMIMCEY4P8PB8LLKMAIRIW040KEUVMUYGIEXCWJWXURZBDW+Thn
qLEB5UDUe0LxYwJmAhKk+PAQVLZE69QWGZPTQWG7ZISUW7UWZDFAXYOJRAKYM
Q/HSASDpiiUFljbYitfYRtCF635yMRBUn4UA8aYclCw0shefW7gUgPxBKGPHA5pK
MpwsKy5AcmNZSIVHjdjI2eLwVZlK44IHQT8lkq7XTDznrAIEWMTErZwbsT/hQj1L
noXLV6YwS5eIJqIDf4tyLZB5Av1ZNrLzQSplrXVkOgxItBU1E+DCwC2xFZUME5dZ
C5AB9AW2JXKSQLHFIRJ4XAX9SZGWZWABDKGATWUEOKW4WY24OK8MMVIaJXXCC8
E0CUAyetikajaifgWGMI2HBGVTCelegekymequireqaifkerchacwasaaaacga
PAADBPtwyUlrdTbrvTH/oOSMpBeeV4muqcmu4zG+r6EcNBskSoLnJ4VQCAw9ErzE
OxGSCBsgwydjmrgohigaupfgsveg12jamfichau3qdpe6fhjosaqdliby6lediud
DNP9C04DDH3EAUEUTEKDWJRAGCBGDNW3JHMJH8HNMWAELDWCFRQIBA6MMiQMG
AGBCBGGSUGEUWQMAVB1MAGWRUXAMRJYAUKU2WVGXDGZEAIXMCGVAJHOVKB/PWeX
NXM5ANSCSKR2DMZZQCWFUAKJO1L4XLNUWWXYHAHGWCYD15AXBGV+wEACg7sDA
A45Oalfy5ZKVxVymepcGyVwowQoyahrCkuffuU7/wp2Zo2AKCgPtwN3xR8/LLpcg
KG1KAVLQYW8GRAWLC8NVP2HEM5UR8CYXP05L8AY8YCPLLGTMNIWCTLFHJR9OR
AMNAUBAIH9WK9G1KAGAXBCG5U6HDSUZP1LLNCQJAGZGBAC41Q6DAAUFAJM5ZUDK
v7z08ATjmKGWAltecaVTqE5oFisB/EIpSiH06IcKpQTa3JSVagPCWm7wZsgOwJkg
3xaTrJFkFgvtFHDywmt1J2iB2pC0C9x0yItnsLx1K8xdoQDYCcQ9I5KwaynaalUS
RnpBpYH4YiXoTipgIlIFtLSUFKwSBb/NTGCNB2ZL51FHO8HHRZBSFEKGZKCW
TGBGYVDXEQNRMNNMOMOBPBXFUSX+ObgYPgS1BBRss/jxxzwAqsbLRfwh1VJyF5WI
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");