2

我有一个页面正在发送带有以下 PHP 代码的 HTML 电子邮件:

$message = $body;//Create message body
$sender = $sender;//Create sender
$to = $customer_email;//Set who the email is being sent to
$subject = 'Quote - '.$_SESSION['quote_number'];//Subject for email
$headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";//Content-type header for mail() PHP built-in function
$headers .= 'To: '.$to . "\r\n";//To header for mail()
$headers .= 'From: '.$sender . "\r\n";//From header for mail()
$mail = mail($to, $subject, $message, $headers);//Send Email

这是带有图像的身体部分:

<img src="some_img.gif" alt="Title" width="400" height="55" align="left"/>

现在发送电子邮件时,图像不会自动下载,您必须右键单击它并下载它。是否有在 mail() PHP 函数中自动下载此图像的解决方案?如果没有,我能做到的最简单的方法是什么?

我已经对此进行了一些研究,我已经看过超过 4 篇文章,这里有一些对我来说没有意义,所以我没有使用其中的代码。它们也非常过时。

如何在电子邮件中嵌入图像

使用 PHP 嵌入图像以在电子邮件中使用?

我对真正复杂的代码不感兴趣,对我来说,我无法忍受那些我根本不理解它们的类和类似的东西。

4

1 回答 1

4

这是您需要的:

<img src="data:image/gif;base64,<BASE64_ENCODED_IMG>" alt="Title" width="400" height="55" align="left"/>

<BASE64_ENCODED_IMG>应该是源二进制编码some_img.gif成 Base64的结果

您可以使用 PHP 即时完成:base64_encode(file_get_contents('/path/to/some_img.gif')); 或者通过http://www.base64-image.de/等在线服务完成并复制和粘贴结果。

您可以在嵌入 Base64 图像中找到有关此的更多信息

编辑:这可能很明显,但是......不可能强制邮件客户端显示图像。但是有些客户端只是避免下载它们,因此在这种情况下,这是一个有效的解决方法。

于 2013-10-09T13:47:53.617 回答