我有一个需要在邮件中显示的徽标。在我的本地计算机上,显示了徽标,但是在实时环境所在的服务器上,未显示徽标。
我正在使用这样的路径:
imagePath = "~/Images/email-logo2.png";
将email-logo2.png
在本地机器上的同一个文件夹,并在服务器上存在了。
我试图添加权限以读取png所在的服务器文件夹,但无法解决问题。你能建议吗?
图像将添加到电子邮件中,如下所示:
HTML:
<img class="auto-style4" src="{PictureSrc}" /><br />
C#代码:
switch (property)
{
case "PictureSrc":
string imagePath = "";
if (User.Identity.GetUserId<int>() == 3140 ||
User.Identity.GetUserId<int>() == 3142)
{
imagePath = "~/Images/email-logo2.png";
}
else
{
imagePath = "~/Images/email-logo.png";
}
content = content.Replace("{" + property + "}", HttpContext.Server.MapPath(imagePath));
Server.MapPath
返回磁盘上的路径(例如C:\images\image.png
),而不是URL。请参阅https://msdn.microsoft.com/zh-cn/library/system.web.httpserverutility.mappath(v=vs.110).aspx。
因此,查看来自另一台计算机的电子邮件的用户显然将无法解析服务器磁盘上的路径,因为它无法访问该磁盘。
您提供的图像路径必须是完全限定的URL,例如http://www.example.com/images/image.png
。
它在本地工作,因为您与映像所在的计算机位于同一台计算机上,因此它恰好可以访问该路径,但是并非所有使用该路径的人都如此。
或者,如果图像不是太大,则可以将其转换为base64并将其嵌入到电子邮件的HTML中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句