将照片嵌入电子邮件

时间:2009-04-18 17:54:46

标签: c# html .net-3.5

我正在编写一个使用SMTP服务发送电子邮件的Windows应用程序。我想将几个动态创建的图像嵌入到电子邮件内容中。我怎么能在.NET中做到这一点?我的电子邮件格式是HTML。 我不想将我的图像托管到照片托管服务。 我不想把它作为附件发送。

2 个答案:

答案 0 :(得分:2)

在MailMessage对象上,您需要创建备用HTML视图。然后将LinkedResources添加到备用HTML视图中。 LinkedResource接收文件或Stream对象的位置。为LinkedResource提供一个ID,该ID将与HTML文件中的内容相匹配。

MailMessage msg = CreateYourMessage();
msg.IsBodyHtml = true;

string html = GetHtmlFromFileOrText();

AlternateView htmlView = AlternateView.CreateAlternateViewFromString(html, Encoding.UTF8, "text/html");

LinkedResource img = new LinkedResource("location_of_image_or_stream_object");
img.ContentId = "Header_Image";
htmlView.LinkedResources.Add(img);

message.AlternateViews.Add(htmlView);

你的html文件或文字应该是这样的

< img src =“cid:Header_Image”alt =“”title =“”/>

注意cid应与LinkedResource的ContentID匹配。

答案 1 :(得分:0)

这是一些VB.NET代码,改为C#应该是微不足道的。它必须附加。这就是HTML电子邮件的工作方式。

http://www.example-code.com/vbdotnet/HtmlWithImage.asp