通过电子邮件发送带有图片的HTML文件

3

我该如何使用C#发送带有图片的HTML邮件?我是否可以直接设置指向我的服务器上图片的链接,例如 <img src="http://mysite.ru/img.png" /> ,或者需要附加图片并使用附件链接?是否有任何示例或可用库?CSS文件和脚本呢?


2
你可以在电子邮件中使用外部图片URL,然而大多数电子邮件客户端默认情况下都会阻止这些图片。使用内嵌图片可能会更成功。 - drudge
绝对URL应该可以正常工作。 - sdleihssirhc
@jnpcl 大多数客户端也会阻止内联图片。您只需要在允许查看后不下载它们即可。 - sra
5个回答

3

3
如果您直接将链接嵌入电子邮件中(指向外部服务器),则大多数客户端都会阻止它们,但用户可以将其打开。
它们可以按照通常的方式嵌入:
<img src="http://go.com/go.gif" />

如果您希望默认显示图片,需要将图片作为附件嵌入并在行内链接到该附件。
参见:http://www.systemnetmail.com/faq/2.6.aspx

2

对于CSS来说,通常使用内联样式而不是引用文件。另一方面,图片应该只是链接而不是与电子邮件一起发送。您只需要将邮件内容声明为HTML即可开始使用。JavaScript也可用,我使用它进行重新定位。


2
请见http://en.wikipedia.org/wiki/MHTML
MHTML,即MIME HTML,是一种网页存档格式,用于将通常由外部链接(如图像、Flash动画、Java小程序、音频文件)表示的资源与HTML代码合并到单个文件中。 MHTML文件的内容被编码为HTML电子邮件消息,使用MIME类型multipart/related。该文件的第一部分通常是编码的HTML;随后的部分是通过其原始URL标识的其他资源,并以base64编码。当由Microsoft Word、Internet Explorer或Opera创建时,默认情况下将此格式称为MHT。 MHTML是一个提议的标准,在1999年作为RFC 2557的修订版中流传。
了解更多关于MHTML的信息可能是解决问题的关键。

哎呀!我猜没有好事会不受惩罚。不过,我承认我最喜欢Dave的答案,因为那个systemnetmail网站上有代码示例等等。尽管如此,HTML电子邮件和MHTML是相关的——了解底层发生的事情总是很好的。 - rskar

2
可能最好的选择是使用像MvcMailer这样的包。
MvcMailer具有以下特点:
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 在步骤指南上,您将找到如何使用图像发送电子邮件的方法。
敬礼。 塞巴斯蒂安。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接