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