【问题标题】:displaying the image on the e-mail is always [closed]在电子邮件上显示图像总是[关闭]
【发布时间】:2013-03-29 23:18:35
【问题描述】:

我已经建立了一个电子邮件系统,当你在数据库中为用户发送电子邮件时,问题是图像不会显示,但必须指定它必须像爱一样出现在前面正如您在此处的图片中看到的那样:

http://billedeupload.dk/images/TaWuJ.png

我喜欢所有可能的其他网站,例如 facebook,他们的徽标一直都在那里。我只是喜欢图像也一直显示而无需用户执行任何操作的相同方式。

我已经这样做了:

<div style="background:#666; color:#FFF; margin:0 auto; width: 960px;">
 <img src="http://www.blabla.dk/indhold/img/banner-2.png">

【问题讨论】:

  • 可能是你的图片标签没有关闭:&lt;img src="http://www.blabla.dk/indhold/img/banner-2.png"/&gt;
  • 这是个玩笑吧?您确实在答案周围放置了一个红色方块,“Vis billder herunder”(在此处显示图片)。

标签: php html css


【解决方案1】:

您编写的代码完全正确。许多邮件客户端(如 GMail、ThunderBird 等)默认不显示图像。您需要单击 Display Image 链接。这个过程不能自动化。这是一种防止 CSRF 的安全措施。

一些参考如下:

LifeHacker:

默认情况下,Gmail 会尝试通过阻止电子邮件中的图片来保护您的电子邮件免受垃圾邮件发送者的侵害,直到您告诉它显示这些图片。这很好,但是当您想查看联系人中的图像时有点烦人。

Gmail now doesn't display images in my email. - Google Groups

更改为默认使用 HTTPS 后,您与 Gmail 的连接将通过 HTTPS 进行加密。但是,您可能收到的某些消息(例如广告和简报)可能包含不是通过 HTTPS 发送的图像,而是通过 HTTP 发送的。

诸如 Internet Explorer 之类的浏览器会通过弹出窗口警告您,表明您在通过 HTTPS 连接到 Gmail 时可能正在尝试访问通过 HTTP 发送的内容。这就是为什么为 Internet Explorer 启用混合内容的显示对你们中的一些人有所帮助。但是,在启用 HTTP 内容的显示时请务必小心,因为某些网站可能包含浏览器设置试图保护您免受风险或恶意内容的影响。

Why do emails not load images directly

Gmail、yahoo、hotmail 等电子邮件提供商不会直接在电子邮件中加载图片。这些服务要求您允许加载图像。他们为什么这样做呢?是防止XSS/CSRF吗?

两个原因 - 隐私和 CSRF。

隐私

它允许发件人确定我是否打开了电子邮件或 不是,在我不知情的情况下。垃圾邮件发送者可以弄清楚他们的 “营销”活动是否产生了任何影响。

CSRF

要使 CSRF 起作用,受害者必须单击一个链接或访问 攻击者页面。如果电子邮件客户端要自动显示图像, 只需打开一封电子邮件就足以发起 CSRF 攻击。

例如,假设 paypal 有一个 csrf 漏洞。还假设 用户已登录到贝宝。现在,攻击者向用户发送 带有<img src="http://paypal.com/transferfunds?fromAccount=victim&toAccount=attacker"/> 的电子邮件。 一旦用户打开电子邮件,资金就会被转移。

【讨论】:

  • 我认为您可以“内联”图像,并将其内容嵌入到电子邮件中。
  • @LeeTaylor 即使那样,图像也会被隐藏。查看更新的答案。
  • 但是内容已经存在(在 BASE64 中),因此不会发送额外的请求。
  • @LeeTaylor 不管怎样。这是一个&lt;img /&gt; 标签。它将被阻止。
猜你喜欢
  • 1970-01-01
  • 2011-10-17
  • 1970-01-01
  • 1970-01-01
  • 2020-12-07
  • 2020-08-20
  • 2020-05-28
  • 1970-01-01
  • 2013-04-27
相关资源
最近更新 更多