【问题标题】:PHP - Inline images not displayed in ThunderbirdPHP - Thunderbird 中不显示内联图像
【发布时间】:2017-03-19 11:29:54
【问题描述】:

我想通过 PHP 发送带有内联/嵌入图像(又名 cid)的邮件。邮件已在 Gmail 中成功发送和正确接收。但是,在 Thunderbird(Windows 的最新版本)中,内嵌/嵌入的图像不显示。

我按照this 线程中提供的信息进行操作,但仍然无法正常工作。因此,内嵌/嵌入的图像会显示在 Gmail 中,但不会显示在 Thunderbird 中。有人知道这里的问题吗?

To: example@example.com
Subject: Test
From: noreply@test.com <noreply>
MIME-Version: 1.0
Content-Type: multipart/related; boundary="52cd9ebf4fb8c9b0547e93b82b3f3f6b"

--52cd9ebf4fb8c9b0547e93b82b3f3f6b
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Test mail</title>
    </head>
    <body>
        <img src="cid:myImage" alt="This is a embedded image" />
    </body>
</html>

--52cd9ebf4fb8c9b0547e93b82b3f3f6b
Content-Type: image/jpg; name="myImage.jpg"
Content-Transfer-Encoding: base64
Content-ID: <myImage>
Content-Disposition: inline; filename="myImage.jpg"

[base64 encoded string goes here.]

--52cd9ebf4fb8c9b0547e93b82b3f3f6b--

【问题讨论】:

  • 这听起来更像是一个本地问题。检查您的设置以查看图像是否没有被阻止(不)显示为默认值。
  • 我很确定 Thunderbird 的设置是找到的。只是默认安装设置。

标签: php image email inline thunderbird


【解决方案1】:

嗯...在RFC 1521中说Content-Type header的格式是这样的

文本的内容类型头域的形式语法是 as
如下:

文本类型 := "文本" "/" 文本子类型 [";" "字符集" "=" 字符集]

text-subtype := "plain" / extension-token

字符集:=“us-ascii”/“iso-8859-1”/“iso-8859-2”/“iso-8859-3” /“iso-8859-4”/“iso-8859-5”/“iso-8859-6”/“iso-8859-7” /“iso-8859-8”/“iso-8859-9”/扩展令牌 ;不区分大小写

我的意思是内容类型,接下来是字符集 但是你把

内容类型:image/jpg; name="myImage.jpg"

所以...这可能会破坏您的形象... 另一个建议是将您的内容 ID 小写而不是驼峰式

问候 埃米利亚诺

【讨论】:

  • 感谢您的回复。您引用的第一行说“他是文本的内容类型标题字段”,因此不适用于图像。小写内容 ID 也不会影响任何内容。那么您或其他人是否有解决方案,或者这是 Thunderbird 的错误?
  • 虽然是图片格式是一样的,只是不需要加字符集。然后尝试在你的内容类型之后删除文本'name="myImage.jpg"',如果不工作请给我一个大喊。
【解决方案2】:

我会检查图片扩展的大小写是否正确。我过去发现 .jpg 会显示在很多浏览器中,即使图像文件扩展名为 .JPG ......但对于某些人来说,它会中断或至少行为不一致。

这可能不适合你,但值得一试。

【讨论】:

    【解决方案3】:

    感谢大家的回复。我不确定,但似乎 Thunderbird 的开发人员在他们的最新版本中做了一个错误修复,因为它现在可以工作了。如果这是正确的,感谢 Thunderbird 的开发者!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-09
      • 2013-04-27
      • 2017-09-26
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      相关资源
      最近更新 更多