您可以使用URL在MVCMailer中嵌入图像内联

时间:2012-05-19 20:48:36

标签: image embed mvcmailer

在逐步查看MVCMailer时,我发现您可以使用HTML中的cid内嵌嵌入图像。

https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide

我看到了有关嵌入的代码:

@Html.InlineImage("logo", "Company Logo")


var resources = new Dictionary<string, string>();
resources["logo"] = logoPath;
PopulateBody(mailMessage, "WelcomeMessage", resources);

我的问题不是在网站中使用路径,而是:

resources["logo"] = Server.MapPath("~/Content/images/logo.png");

我可以以某种方式获取Azure云或S3 Cloud中我有足够空间的图像吗?

如果有办法从MVC邮件程序运行的服务器以外的其他来源获取图像,请告诉我。

谢谢, 维克多

1 个答案:

答案 0 :(得分:0)

在Server.MapPath(my_path)中,my_path指定映射到物理目录的相对路径或虚拟路径。 Server.MapPath与本地FileSystemObject相关,因此在这种情况下,它将在本地Web服务器中的某个位置查找该文件(您作为参数传递)。更多信息在这里描述:

http://msdn.microsoft.com/en-us/library/ms524632(v=VS.90).aspx

因此,如果您的图像位于http://azure_storage_name.blob.core.windows.net/your_public_container/image_name.jpg,则将其传递给Server.MapPath()将不起作用,因为这不是本地文件系统中的位置。我试过,发现它不会接受,我也尝试调整一些但没有成功。如果您可以更改后面的代码并且可以从URL访问资源,那么它将无效。