在电子邮件中添加图片而不是链接资源,但应在展望

时间:2015-06-11 07:20:32

标签: c# html email outlook

我想将图片添加到电子邮件中。我尝试了几种方法我最终的解决方案是添加图像作为linkedResource但它会增加电子邮件的大小,我不希望它,因为电子邮件已经有几个附件。我正在使用xslt文件来获取电子邮件的HTML主体来自XML输入。我正在添加如下图像

<img src="http://placehold.it/350x150">

但不知何故,图像在微软办公室的Outlook客户端和.mht文件中显示为红叉。电子邮件在Outlook webmail客户端和不同浏览器中看起来很好。

如果我在浏览器中从Outlook客户端在Microsoft Office中打开邮件后看到浏览器中的网络选项卡,则可以看到url'http://placehold.it/350x150'的请求,但收到的字节为零,响应为空。

有没有办法在不使用linkedResource的情况下将图片添加到电子邮件中? 你的帮助对我来说真的很棒。

2 个答案:

答案 0 :(得分:1)

使用base64对图像进行编码并添加如下:

<img src="data:image/JPEG;base64,{encoded string}">

{encoded string}部分是图像数据的base64编码。根据图像类型,JPEG可以是gif或其他任何东西。

答案 1 :(得分:0)

您可以使用嵌入式图像。

<img alt="My Image" src="data:image/jpeg;base64,/9j/4S/+RXhpZgAATU0AKgAAAAgACAESAAMAENkDZ5u8/61a+X...more encoding" />

此处有更多信息:https://sendgrid.com/blog/embedding-images-emails-facts/

PS。不久之前,我们在不同的浏览器和电子邮件客户端中存在电子邮件呈现问题。如上所述存储图像是最佳解决方案(对于图像,ofc:))。