0

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

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 云中有足够空间的图像?

请让我知道是否有办法从其他来源获取图像,而不是运行 MVC 邮件程序的服务器。

谢谢,维克多

4

1 回答 1

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 访问资源,那么它将无法正常工作。

于 2012-05-21T18:01:37.837 回答