我有一个页面,它发送带有以下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篇文章,这里有一些对我没有意义的文章,所以我没有在其中使用过这些代码。它们也已经过时了。
Embed images for use in email message using PHP?
我对真正复杂的代码不感兴趣,对我来说,我不能忍受类似于那些我根本不理解它的东西。
答案 0 :(得分: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/等在线服务完成并复制并粘贴结果。
编辑:这可能很明显,但是......无法强制邮件客户端显示图像。但有些客户只是避免下载,所以在这种情况下,这是一个有效的解决方法。