2009-04-18 54 views
1

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

回答

2

在你的对象MAILMESSAGE你需要创建一个替代HTML视图。然后,将LinkedResources添加到您的替代HTML视图。 LinkedResource接受文件或Stream对象的位置。为LinkedResource提供一个与您的HTML文件中的内容匹配的ID。

 
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 = “” 标题= “”/>

通知CID应匹配您的LinkedResource的ContentID。