Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP mail()-图像不';不要总是装东西_Php_Html - Fatal编程技术网

PHP mail()-图像不';不要总是装东西

PHP mail()-图像不';不要总是装东西,php,html,Php,Html,我有一个PHP邮件脚本,基本上如下所示: $result = mail($to, $subject, $message, $headers); if(!$result) { echo "Error"; } else { echo "Success"; } $message是一封HTML电子邮件,在我的电子邮件客户端中,除了图像似乎只是偶尔加载外,它大多呈现良好 图像都是这样的: <img src='http://www.mywebsite.com/media/twit

我有一个PHP邮件脚本,基本上如下所示:

$result = mail($to, $subject, $message, $headers);
if(!$result) {   
  echo "Error";   
} else {
  echo "Success";
}
$message
是一封HTML电子邮件,在我的电子邮件客户端中,除了图像似乎只是偶尔加载外,它大多呈现良好

图像都是这样的:

<img src='http://www.mywebsite.com/media/twitter.png' />

我不明白为什么有些人会加载,有些人不会,当他们都设置相同的方式

我曾读到,最好将图片作为附件嵌入电子邮件中,但我不确定如何做到这一点。您似乎添加了这样一行:

<img src='cid:123456789'>

但这是指什么呢?我如何对这样的图像进行编码


任何帮助都将不胜感激!!谢谢

您必须对文件进行base64编码

我在github上找到了一个代码示例。我没有亲自测试过,但应该给你一个正确方向的良好推动

   $picture = file_get_contents($file);
   $size = getimagesize($file);

   // base64 encode the binary data, then break it into chunks according to RFC 2045 semantics
   $base64 = chunk_split(base64_encode($picture));
   echo '<img src="data:' . $size['mime'] . ';base64,' . "\n" . $base64 . '" ' . $size[3] . ' />', "\n";
$picture=file\u get\u contents($file);
$size=getimagesize($file);
//base64对二进制数据进行编码,然后根据RFC 2045语义将其分成块
$base64=块分割(base64编码($picture));
回显“”,“\n”;
资料来源:


作为旁注。您使用的网络图像是否经过优化?大型图像可能被电子邮件客户端阻止,或者只是没有被电子邮件客户端下载。

谢谢!在了解base64之后,我发现了这篇优秀的帖子。我通过他的函数输入了我的
$message
,它嵌入了图像