使用MailKit发送带有内嵌图片的邮件且图片不显示成附件(图片以附件形式发送邮箱)

网友投稿 341 2022-06-21


注意

在邮件客户端中是否显示内嵌图片为附件依据不同邮件有所不同,暂经测试Outlook和qq不显示为附件,新浪邮箱会显示附件。

概述

要发送一封带有复杂格式的邮件,且正文内容中带有复杂的图片,以一封阿里云发送的邮件为例,其中还有5张图片。现在想要使用MailKit这个库来发送邮件,邮件模板中也含有图片,该如何发送呢。

知识点

MIME-多用途互联网邮件扩展类型

一封含有复杂内容的邮件可以如下图表示,分为alternative、related、mixed三个部分,alternative部分包含纯文本和超文本内容,related包含alternative部分和内嵌资源,mixed部分包含related部分和附件。

文章中图片一般是作为图中的内嵌资源,所以不会出现在邮件的附件列表中。

实践

我们现在用这封阿里云的邮件作为模板,用MailKit发送这封邮件,且收到后的邮件效果相同。

准备工作

将邮件下载到本地,保存为Html文件,并将邮件中用到的图片资源下载下来,将Html文件和图片放在一个文件中一次作为一个模板。

代码实现

实现步骤主要问,组装正文部分包裹在alternative中,然后将alternative和内嵌资源包裹在related中,再将related用mixed包裹,将以上内容复制给邮件正文。

图片的链接进行格式处理,原:,修改为。详见代码中射击ContentId部分。

使用bodyBuilder来构建邮件正文。具体见代码。

发送后收到的邮件


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:解读C#中的正则表达式(解读财经知识)
下一篇:C#用抽象类定义几何图形(cctv5)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~