电子邮件中的图片无法显示(Gmail)

5

我已经用HTML编写了一封电子邮件,其中包含一张图片。

图片的“src”属性有一个URL指向我的服务器上的控制器操作端点(ASP.Net),该端点返回一个FileContentResult。

img标签的示例如下:

<img src="https://www.mywebsite.com/controller/action?argument=value" width="600" height="300" alt="HeadingImage" title="HeadingImage">

邮件在Outlook中显示正常。

如果我从Outlook复制源代码并在Chrome桌面版中查看,仍然可以正常工作。

如果在Chrome中访问img URL,则可以下载图像。

但是,如果我在Gmail中查看电子邮件,则图像不会显示。这可能是为什么呢? 控制台中只有一个错误,看起来像这样:

ci6.googleusercontent.com/proxy/<SNIP>https://www.mywebsite.com/controller/action?argument=value GET https://ci6.googleusercontent.com/proxy/<SNIP> 404 ()

有控制台错误吗? - Jones Joseph
通过查看IIS生成的日志文件,位于C:\inetpub\logs\LogFiles\W3SVC1,我发现没有错误,只有预期的端点被访问。 - Ben
不好意思,请问您所说的“在Gmail中查看”是指什么?是在浏览器中打开“Gmail.com”吗?如果是这样,那么在您查看时,浏览器控制台是否显示任何错误信息? - Jones Joseph
1
当在Gmail和Chrome中查看电子邮件时,出现了一条关于图像的单独的404错误... ci6.googleusercontent.com/proxy/<SNIP>https://www.mywebsite.com/controller/action?argument=value GET https://ci6.googleusercontent.com/proxy/<SNIP> 404 () - Ben
也许GMail不允许这种动态图片嵌入?需要使用控制器来生成动态图片吗? - Jones Joseph
如果你没有设置响应的内容类型,我认为你需要在操作中设置它。 - Smart Dev
3个回答

1

您好,您可以使用这个方法,对我来说很有效。

在src URL中包含方案(使用“//”不起作用-使用完整的方案,例如:“https://”) 包括宽度和高度属性 包括style="display:block"属性 包括alt和title属性


谢谢,但我的示例中最初缺少了协议...即使加上了协议,它仍然无法工作。我尝试了您的另一个建议,添加一个内联样式,并将其显示设置为“块”,但仍然没有成功。此外,我已经指定了宽度、高度、alt和title属性。 - Ben

0

首先,您需要将该图像添加到已部署的项目文件夹中,然后需要指定图像的路径:

<img src="http://www.mywebsite.com/Images/YourImage.png" />

干杯!!


谢谢,但我需要根据参数动态生成图像。这就是为什么它当前指向控制器操作的原因。 - Ben

0

只需在图像的 src 中添加 http://

<img src="http://www.mywebsite.com/controller/action?argument=value" width="600" height="300" alt="HeadingImage" title="HeadingImage">

抱歉,我的错误。我在示例中漏掉了这个...它仍然无法使用该协议。 - Ben

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接