通过电子邮件发送带有图像的 html 文件

Posted

技术标签:

【中文标题】通过电子邮件发送带有图像的 html 文件【英文标题】:Sending html file with images via email 【发布时间】:2011-08-27 10:19:03 【问题描述】:

如何在 c# 中发送带有图像的 html 邮件?我可以在我的服务器上设置直接链接到图像(类似<img src="http://mysite.ru/img.png" />)还是我需要附加图像然后使用链接到我的附件?是否有任何示例或准备使用库? css 文件和脚本呢?

【问题讨论】:

可以对电子邮件中的图像使用外部 URL...但是,大多数电子邮件客户端默认会阻止这些图像。使用内联附加图像会更好。 绝对 URL 应该可以正常工作。 @jnpcl 大多数客户端也会阻止内联图像。您只是不需要在允许查看后下载它们。 【参考方案1】:

可能最好的选择是使用像 MvcMailer 这样的包。

Mvc Mailer 显示以下特点:

MvcMailer 使用 MVC 视图作为电子邮件正文轻松发送电子邮件。以下是功能的快速列表:

a) 使用 Razor/WebForms 视图

b) 使用母版页

c) 编写可测试的代码

d) 使用 ViewBag 或 ViewModel 将值传递给您的视图和

e) 使用 Url.Abs 方法和生成绝对 URL

f) 只需添加视图文件即可创建多部分电子邮件,

g) 为您的邮件搭建支架。 MvcMailer 有一个扩展 ControllerBase 类的 MailerBase 类。

所以,邮件程序就像您的控制器一样。因此,您可以在没有任何学习曲线的情况下使用所有控制器好东西。最终结果是一个具有专业外观的 HTML 电子邮件正文,可供您发送给您的网站用户。

访问项目站点以获取有关 MvcMailer 的综合教程。 https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide

在步骤指南中,您将了解如何使用图像发送电子邮件。

brgds。 塞巴斯蒂安。

【讨论】:

【参考方案2】:

见http://en.wikipedia.org/wiki/MHTML:

MHTML 是 MIME HTML 的缩写,是一种网络 用于组合的页面归档格式 通常是资源 由外部链接表示(例如 图像、Flash 动画、Java 小程序、音频文件)以及 HTML 代码到单个文件中。这 MHTML 文件的内容被编码为 如果是 HTML 电子邮件, 使用 MIME 类型 multipart/related。 文件的第一部分通常是 编码的 HTML;随后的部分是 确定的额外资源 他们的原始 URL 和编码在 基数 64。这种格式有时 简称MHT,后缀 默认情况下为此类文件提供 .mht 当由 Microsoft Word 创建时, Internet Explorer 或 Opera。 MHTML 是 一个提议的标准,在一个 1999 年修订版为 RFC 2557。

更多地了解 MHTML 可能是解决问题的关键。

【讨论】:

哎哟!我猜,没有一件好事会受到惩罚。无论如何,我承认我最喜欢 Dave 的回答,因为该 systemnetmail 站点上有代码示例等。尽管如此,HTML 电子邮件和 MHTML 是相关的 - 总是很高兴知道幕后发生了什么。【参考方案3】:

如果您直接将链接嵌入到电子邮件中(指向外部服务器),您将被大多数客户端阻止,但用户可以打开它们。

它们可以以通常的方式嵌入:

<img src="http://go.com/go.gif" />

如果您需要它默认显示,您需要将图像作为附件嵌入并链接到该附件。

见:http://www.systemnetmail.com/faq/2.6.aspx

【讨论】:

【参考方案4】:

有多种编码内嵌图像的方法。我们在内部使用 VB.NET,这个站点是一个很好的参考http://www.systemnetmail.com/default.aspx

【讨论】:

【参考方案5】:

对于 CSS,通常使用内联样式并且没有引用文件,另一侧的图像应该只是链接,而不是随电子邮件发送。您只需将邮件内容声明为 html 即可。 javascript 也是可用的,我使用它进行一些重新定位。

【讨论】:

以上是关于通过电子邮件发送带有图像的 html 文件的主要内容,如果未能解决你的问题,请参考以下文章

Django:如何发送带有嵌入图像的 HTML 电子邮件

用于发送带有附件的电子邮件的 GMAIL API

Django 发送带有图像的 HTML 电子邮件

当我们使用 phpMailer 发送带有动态内容的邮件时,如何在电子邮件正文中显示多个内联图像

Python:多部分 html 电子邮件通过嵌入式图像和附件发送

在 Django 中发送带有内联图像的 HTML 电子邮件