我想通过嵌入base64图像向用户发送电子邮件。从浏览器打开图像时,图像在outlook中正确呈现,并且outlook桌面应用程序以安全模式打开。但在桌面应用程序中查看时,图像相同(没有安全模式),有一个橙子的轮廓,added image here .我试过在<img>
,<table>
,<tr>
,<td>
标签中添加一些css,指定背景颜色,边框(无,0)使用重要,但似乎没有工作。任何建议将不胜感激。谢谢。HTML模板代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Outlook 2007 Test</title>
<style media="all" type="text/css"> img:not([src]) {visibility: hidden;}
.image-container{ color: #000 !important; text-shadow: none !important; background: transparent !important; box-shadow: none !important; z-index: 100000;width:200px;height:200px; border:0px !important; overflow:hidden; display:block;}
.image-container img{ margin:-1px; padding:0px; display: block; line-height: 0px; font-size: 0px; border:0px !important;}
</style>
</head>
<body>
<table style="border-collapse: collapse;">
<tbody>
<tr style="border-collapse: collapse;><td style=" border-collapse:="" collapse;="">
<span class="image-container">
<img width="100" height="100" align="top" src="data:image/png;base64...." alt="graphic">
</span>
</tr>
</tbody>
</table>
</body>
</html>
2条答案
按热度按时间oaxa6hgo1#
一些事情。
Outlook会阻止base64编码的图像。但是,实际上,如果您使用Outlook /safe,您可以解决这个问题。
苹果电子邮件客户端允许base64编码的图像。
另一种方法是通过附加文件来嵌入图像。
在此页面上,您可以找到包含所有场景的综合指南:
https://mailtrap.io/blog/embedding-images-in-html-email-have-the-rules-changed/
希望能有所帮助!
g52tjvyc2#
桌面版的Outlook不理解或呈现base64图像。如果你需要得到正确传递的图像,你需要将它们上传到任何Web服务器,并使用链接到Web服务器与这样的图像。但这不是理想的太,默认情况下,Outlook也可能会阻止外部图像。最好的解决方案是通过将图像附加到邮件项目来嵌入图像,然后使用CID属性从邮件正文中引用图像。
在Outlook中,您需要使用
Attachment.PropertyAccessor.SetProperty
方法设置PR_ATTACH_CONTENT_ID
MAPI属性(DASL名称为“http://schemas.microsoft.com/mapi/proptag/0x3712001F“)。然后,您可以使用src
属性引用此类附件,该属性与附件上设置的PR_ATTACH_CONTENT_ID
值匹配。PR_ATTACH_CONTENT_ID
属性对应于发送邮件时的Content-ID
MIME标头。