Asp.net mvc 图像未显示在电子邮件MVC中

Asp.net mvc 图像未显示在电子邮件MVC中,asp.net-mvc,email,Asp.net Mvc,Email,我有一个奇怪的问题。 我需要从MVC站点发送一封电子邮件。我有一个电子邮件的html模板,看起来像这样(图像部分): 1.首先,我尝试添加图像的路径。这种方法可以在我的本地机器上使用,但不能在实时站点所在的服务器上使用 我已尝试添加图像的URL。当我将URL粘贴到浏览器中时,会显示图像,但在发送的电子邮件中,图像不会显示,不会显示在我的本地计算机上,也不会显示在服务器上。 有趣的是,我正在将这些邮件发送到outlook帐户。那里没有显示图像,但如果我将邮件发送到我的雅虎帐户,就会显示图像 我尝试

我有一个奇怪的问题。 我需要从MVC站点发送一封电子邮件。我有一个电子邮件的
html
模板,看起来像这样(图像部分):

1.首先,我尝试添加图像的路径。这种方法可以在我的本地机器上使用,但不能在实时站点所在的服务器上使用

  • 我已尝试添加图像的URL。当我将URL粘贴到浏览器中时,会显示图像,但在发送的电子邮件中,图像不会显示,不会显示在我的本地计算机上,也不会显示在服务器上。
    有趣的是,我正在将这些邮件发送到outlook帐户。那里没有显示图像,但如果我将邮件发送到我的雅虎帐户,就会显示图像

  • 我尝试将image转换为base 64,正如您在
    code
    上看到的那样,并以这种方式替换
    image src
    。这样,如果我将邮件发送到outlook帐户,图像也不会显示在本地计算机上,也不会显示在服务器端。如果我将邮件发送到yahoo帐户,则会显示邮件


  • 您能告诉我如何解决这个问题吗?

    几个月前,我在Outlook中遇到了同样的问题。在研究过程中,我了解到Outlook倾向于删除电子邮件中嵌入的图像。我用CID技术解决了这个问题。此技术包括将图像附加到电子邮件,并在电子邮件模板中使用图像的CID引用它

    首先,您需要获取图像的CID。有很多在线CID转换器可以实现这一点。然后,您只需要在模板的
    img src
    属性中使用CID:


    注意:由于图像被附加,这将增加您电子邮件的大小。

    “那里没有显示图像,但是如果我将邮件发送到我的雅虎帐户,那里会显示图像。“对我来说,这表明您的代码不太可能有问题。更有可能是Outlook中的一项设置,默认情况下禁止将图像和其他外部资源下载到电子邮件中。您应该能够在Outlook中的某个位置控制此设置,具体操作位置可能取决于您使用的版本,但应该可以通过谷歌搜索。
    ...
    <img class="auto-style4" src="{PictureSrc}" /><br />
    <img src="data:image/png;base64,{pictureBase64}"> 
    ....
    
      case "PictureSrc":
             string imagePath = "";
             imagePath = "~/Images/email-logo.png";
              //string base64 = Convert.ToBase64String(System.IO.File.ReadAllBytes(HttpContext.Server.MapPath(imagePath)));
    
             //content = content.Replace("{pictureBase64}", base64);
             content = content.Replace("{" + property + "}", HttpContext.Server.MapPath(imagePath));
                        break;