2013-02-14 140 views
0

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

我不想因为我使用的是开放源代码的电子邮件模板引擎

街头公告员使用likedResource选项 - 为.NET http://thecodedecanter.wordpress.com/2010/07/19/town-crier-an-open-source-e-mail-templating-engine-for-net/

的开放源代码电子邮件模板引擎这个引擎需要的图像作为完整的地址给出。

任何更好的解决方案将不胜感激。

谢谢, Alagesan。

+0

难道你只是上传图像到你的服务器,并引用它在你的电子邮件?像http://server/path/imagename.gif – stephenl 2013-02-14 23:57:14

+0

不,它需要一个完全合格的url。 – 2013-02-14 23:59:20

+0

评论中的网址无法正确呈现。想象它的前面有http://。这使它成为一个完全合格的网址。 – stephenl 2013-02-15 00:02:22

回答

1

如果图像是静态的并且不是太大,则可以使用消息中的AlternateViewLinkedResources属性将它们包含在消息本身中。

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); 
} 

img.ContentId然后使用"cid:ContentId" URL语法消息中引用。因此,如果您将图片的内容标识为"header.jpg",那么您可以在HTML电子邮件中使用以下内容引用它:<img src="cid:header.jpg" />

方便插入小徽标等。

相关问题