【问题标题】:Can you send images in data:uri format to GMail?您可以将 data:uri 格式的图像发送到 GMail 吗?
【发布时间】:2012-01-24 16:56:58
【问题描述】:

我正在 Django 中制作一个网络应用程序,用于向用户发送图像到他们的电子邮件。

发送图像对我来说最有吸引力的方式是data:uri 格式。

但是,我测试了将包含 data:uri 图像的这封电子邮件发送到我的 GMail 帐户,电子邮件显示,但没有图像!

我知道 Chrome 和 Firefox 都可以打开 data:uri 图像。所以这不是浏览器的问题。但我根本没有在 GMail 中看到 data:uri 图像。

GMail 不支持 data:uri 图像吗?还是我发错了?

【问题讨论】:

    标签: email gmail data-uri


    【解决方案1】:

    不支持。它在 Outlook 等其他客户端中也被阻止。

    一些原因:

    • 帮助避免查看可能令人反感的材料
    • 对于低带宽连接,阻止内联图像允许客户端决定特定图像是否保证下载它所需的时间和带宽

    您可以使用内容 ID (CID) 附加一个 src 属性指向消息的单独部分的图像。

    <img src="cid:imagecid"/>
    
    --001a1141059012513a055a1b9499
    Content-Type: image/jpeg
    Content-Transfer-Encoding: base64
    Content-ID: <imagecid>
    
    R0lGODlhDwAPAKIEAP/ql9yuA...
    --001a1141059012513a055a1b9499--
    

    【讨论】:

    • 多么被低估的答案。由于这 5 年来电子邮件模板的方法几乎没有变化,因此这种方法简直就是黄金。
    【解决方案2】:

    不支持。

    邮件客户只需将其从您的帖子中删除。

    这里是可以支持的很好的参考:

    http://www.campaignmonitor.com/css/

    【讨论】:

    • 我看不到这张表在哪里谈论data:uri
    • 多部分消息在 gmail 中运行良好。代码中未引用的任何内容都将仅显示为附件,但您需要确保它们已设置Content-Disposition: inline;
    • 我至少可以知道为什么 GMail 决定不支持它吗?这是这样一个有用的功能!任何会绕过愚蠢的“来自此电子邮件的图像被隐藏”的东西,这实际上只有助于防止加载外部图像。为什么 data:uri 或 multipart 不起作用?为什么!?? WHYYYY!??!?1/1/1/1
    • 不支持这个真的很奇怪;允许电子邮件带有附件的 MIME 编码系统与 base64 编码数据 URI 方案几乎相同。除了 base64 编码数据附加到电子邮件正文的末尾,并使用标识符 (IIRC) 引用。
    • 我不会说邮件客户端不支持它,而是邮件客户端可能不支持它。我测试了通过数据 uri 将 HTML 电子邮件中的图像发送到 GMail。 GMail 只是将其呈现为纯文本。但它在连接到 GMail 帐户的 OS X Mail 应用程序中呈现良好。所以消息在 GMail 中是可以的,只是 GMail 不会在其 UI 中呈现它。
    猜你喜欢
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 2011-09-19
    • 2013-08-02
    • 1970-01-01
    • 2015-07-16
    相关资源
    最近更新 更多