首页 > 解决方案 > 附件中的 PHPMailer 嵌入图像

问题描述

我是使用脚本的局外人。

我正在尝试使用AddEmbeddedImagecid:嵌入附件中的图像,对吗?但是失败...

非常感谢您提前的帮助!!!

$signature = $_POST['signature'];
$signatureFileName = uniqid().'.png';
$signature = str_replace('data:image/png;base64,', '', $signature);
$signature = str_replace(' ', '+', $signature);
$data = base64_decode($signature);
$file = 'signatures/'.$signatureFileName;
file_put_contents($file, $data);


$message='Subject:  '.$_POST['subject'].'<br /> 
<img src="cid:'.uniqid().'.png"/> <br />
<img src="cid:'.uniqid().'"/> <br />
';    

require "../phpmailer/class.phpmailer.php";
require "../phpmailer/setting.php";
$mail->Subject = "Image Form"; 
$mail->MsgHTML($message);
$mail->AddEmbeddedImage($file, uniqid());

标签: phpmailer

解决方案


uniqid()多次调用,正如文档所说,每次它都会给您一个新的随机结果,因此您的附件 CID 永远不会与您的邮件内容中的内容相匹配。这样做以确保它们匹配:

$cid = uniqid();
$message='Subject:  ' . $_POST['subject'] . '<br /> 
<img src="cid:' . $cid . '"/> <br />';
$mail->addEmbeddedAttachment($file, $cid);

推荐阅读