从WCF服务发送带有嵌入图像的邮件

时间:2013-02-14 23:51:52

标签: c# wcf email c#-4.0 html-email

我有一个WCF服务,它会向我的客户发送电子邮件。那个电子邮件正文是html。所以它有CSS样式和嵌入式图像。但现在的问题是图像src必须作为完整地址给出。那么是否有任何选项可以将图像作为wcf服务的一部分公开并使用该完整地址。

我不想使用likesResource选项,因为我使用的是开源电子邮件模板引擎

Town Crier - .NET的开源电子邮件模板引擎 http://thecodedecanter.wordpress.com/2010/07/19/town-crier-an-open-source-e-mail-templating-engine-for-net/

此引擎需要将图像作为完整地址提供。

非常感谢任何更好的解决方案。

谢谢, Alagesan。

1 个答案:

答案 0 :(得分:1)

如果图像是静态的而不是太大,您可以使用消息中LinkedResources的{​​{1}}属性将它们包含在消息本身中。

AlternateView

然后使用AlternateView html = message.AlternateViews.FirstOrDefault(v => v.ContentType.Name == "text/html"); if (html != null) { LinkeResource img = new LinkedResource(imgFileName, imgMimeType); img.ContentId = imgContentName; html.AddLinkedResources.Add(img); } URL语法在邮件中引用img.ContentId。因此,如果您为图片提供了"cid:ContentId"的ContentId,那么您可以使用以下网址在HTML电子邮件中引用它:"header.jpg"

便于插入小徽标等。