我有一个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'>
但是这个参考是什么?我如何编码这样的图像?
任何帮助将不胜感激!感谢
答案 0 :(得分:1)
您必须对文件进行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";
来源:https://gist.github.com/jasny/3938108
正如旁注。您使用Web的图像是否已优化?电子邮件客户端可能会阻止大图像,或者电子邮件客户端不会下载。