【问题标题】:How to embed images in HTML email on the mail server?如何在邮件服务器上的 HTML 电子邮件中嵌入图像?
【发布时间】:2012-08-10 01:40:00
【问题描述】:

如何在 HTML 中嵌入图像,以便图像与 html 文件内容一起交付,而不需要单独访问服务器来检索图像?我们需要在签名离开邮件服务器之前将其嵌入到签名中。我们不想使用 Thunderbird 或 Outlook 功能之类的客户端解决方案来添加签名。

谢谢

【问题讨论】:

  • 您是否能够成功使用您在电子邮件中接受的解决方案?
  • 嗨山姆,还是要试试看。有一个客户希望在服务器端将签名添加到电子邮件中。由于没有人真正做到这一点,我认为这一定很难做到。会让你知道的。

标签: html email


【解决方案1】:

您需要做的是将文件编码为 Base64,并像这样包含它:

<img src="data:image/gif;base64,R0lGODlhUAA..(the rest of your base64 encoded file)..">

http://www.sweeting.org/mark/blog/2005/07/12/base64-encoded-images-embedded-in-html

http://dean.edwards.name/weblog/2005/06/base64-ie/

【讨论】:

  • 链接解释了如何使它在 IE 中工作。如今,大多数电子邮件程序都使用与其中一种浏览器相同的渲染引擎,或者确实在浏览器中,因此它应该适用于大多数人。
  • 实际上并非如此,与浏览器中呈现的 HTML 相比,电子邮件中的 HTML 受到很大限制。
  • 而 Outlook 使用的是 MS Word 而不是 MS IE。
  • 有没有人设法让这适用于电子邮件?我试过了,没有一个电子邮件客户端会将其显示为图像。它们都只显示一个 150x150 的正方形,带有 ALT 文本...
【解决方案2】:

对此的标准解决方案是将图像添加为附件。每个附件都有一个 ContentID,因此您可以使用 &lt;img src="cid:ContentID" /&gt; 嵌入图像。
这会将图像嵌入到电子邮件中,而不是 html 中。

【讨论】:

  • 谢谢会试一试。我主要看的是电子邮件
【解决方案3】:

我不认为 W3C HTML 规范真的允许你这样做。

但如果你真的想要,你可以创建一个像素宽度和像素高度的表格,并一个一个地设置单元格背景颜色来创建你的图像。

【讨论】:

  • 您真的想收到这样的电子邮件吗? :)
  • ++!我想要和你抽烟一样的东西;)
  • 哦,拜托,你不能说我没有创意。 :)
  • 我喜欢这个答案
【解决方案4】:

不能这样做,但没关系,因为现代浏览器使用 KeepAlive 功能,以便保留与服务器的连接以进行图像加载。

【讨论】:

  • 注意:OP 询问的是 HTML 格式的电子邮件,而不是网页。
【解决方案5】:

这是一个方便的Image to HTML converter - 警告会创建 NASTY HTML! :)

【讨论】:

  • 来自作者的哈哈:“它又大又肿又慢。这有什么用?纯粹的形式,没有。至少没有我能想到的。”
【解决方案6】:

我想到的问题是 - 为什么你不希望在你的 html 中使用 normal &lt;img&gt; 标签?

将图像附加到 html 的正文中可能听起来很诱人,但它肯定会减慢电子邮件的下载时间,而且有些人使用 gprs 连接之类的东西来限制他们的带宽。

IMO 你的 html 中有图片是纯粹的邪恶。但这只是出于好奇,问你为什么想要这样的解决方案 - 似乎@nickf alredy 给了你一个很好的解决方案:)

【讨论】:

  • 电子邮件下载通常是后台任务,通常只有在下载邮件后才会通知用户。我认为嵌入图像比在打开邮件时下载图像要好。至于为什么?图像链接通常被防火墙阻止或在离线模式下不可用。
  • 那么@Kobi 的解决方案似乎很完美——将图像作为附件发送并链接到电子邮件正文中的附件。这样,您仍然可以让用户获得仅轻量化的机身
  • 我,作为这样一个电子邮件客户端的用户,更希望有一个设置,我可以告诉程序预取或不预取,这取决于我对发件人的信任(或垃圾邮件过滤器或诸如此类)对我来说,最重要的是“随时无图像”单选框......这是我的电脑,而不是发件人的电脑。
  • 嗨 Lexu,我将把它留给邮件客户端的开发人员来实现。我关心的是让图像随邮件一起发送。大多数人都喜欢接收 html 邮件,因此能够提高他们的体验很重要。
【解决方案7】:

我最近重新评估了解决方案。

根据this blog,对内联附件的支持得到了改进,新的东西被推送到主线 Rails 仓库。

不过,我没有检查哪个 Rails 版本足够幸运地包含此更改。

对于我的 2.3.x 部署,我使用了 inline_attachment gem

【讨论】:

    猜你喜欢
    • 2010-12-23
    • 2011-10-06
    • 2015-03-14
    • 2016-11-06
    • 2020-12-14
    • 2011-11-09
    • 2012-02-10
    • 2017-08-31
    相关资源
    最近更新 更多