【问题标题】:Gmail not showing embedded images in emailGmail 未在电子邮件中显示嵌入的图像
【发布时间】:2017-06-11 08:25:28
【问题描述】:

我一直在在线查看不同的主题,并在 SO 讨论将图像嵌入电子邮件以及为什么它们不总是发送图像。我将 base64 编码的字符串嵌入到 img 标签中,而 gmail 拒绝了它。当我检查电子邮件时,img src 属性为空,并且一些信息已添加到表示其父元素的“a”标签中。我确保将我的 gmail 设置设置为包含外部图像!当我查看 outlook.com 的电子邮件时,他们确实会发送图片。

我听说电子邮件和图片必须来自公共服务器?目前我正在从运行 iis 的本地主机发送电子邮件(因为我正在测试)并使用 sendgrid 发送我的电子邮件。

谁能给我更多的建议,让我在 gmail 的服务中将图像显示在我的电子邮件中?

仅供参考 - 这是我构建图像标签的方式。我在 img 标签中包含了不同的属性以使其显示,但这些属性都不适用于 gmail。我也使用“@Raw”,因为我正在使用 razore 引擎 nuget 包构建我的电子邮件,而“Html.Raw()”不适用于 Razore 引擎!在我将其发送到 sendgrid 以将其邮寄之前,电子邮件文本看起来不错,我在 Outlook 中看到它的图像,所以我知道正文很好。

<a href="www.mysite.com/Space/Public/@Model.SpaceId" target="_blank" class="thumbnail" style="margin-bottom: 0px;">
                                <img alt="SpaceImage" title="Space Image" style="display: block" width="225" height="225" src="data:image/jpg;base64,@Raw(Model.SpaceThumbnail)" />
                                <div class="caption">
                                    @Model.SpaceName
                                </div>
                            </a>

【问题讨论】:

    标签: html asp.net-mvc image gmail html-email


    【解决方案1】:

    每当我们发送电子邮件时,我们都必须嵌入图像才能使其在包括 gmail 在内的大多数电子邮件客户端中成功呈现。对于 asp.net,它会是这样的:

        string html = @"<html><body><img src=\"cid:imageId\"></body></html>";
        AlternateView view = AlternateView.CreateAlternateViewFromString(html, null, MediaTypeNames.Text.Html);
        LinkedResource imageResource = new LinkedResource("yourImagePath", MediaTypeNames.Image.Jpeg);
        imageResource.ContentId = "imageId";
        view.LinkedResources.Add(imageResource);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-04
      • 2015-02-17
      • 1970-01-01
      • 2020-05-28
      • 2011-11-09
      • 2012-07-28
      • 2017-10-26
      相关资源
      最近更新 更多