phpmailer - 附件中的 PHPMailer 嵌入图像
问题描述
我是使用脚本的局外人。
我正在尝试使用AddEmbeddedImage
并cid:
嵌入附件中的图像,对吗?但是失败...
非常感谢您提前的帮助!!!
$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());
解决方案
您uniqid()
多次调用,正如文档所说,每次它都会给您一个新的随机结果,因此您的附件 CID 永远不会与您的邮件内容中的内容相匹配。这样做以确保它们匹配:
$cid = uniqid();
$message='Subject: ' . $_POST['subject'] . '<br />
<img src="cid:' . $cid . '"/> <br />';
$mail->addEmbeddedAttachment($file, $cid);
推荐阅读
- windows - 如何通过ansible远程复制文件到远程windows服务器
- android - 加载片段的最佳实践(加载部分)
- python - Python 表格图(Datatyp 的限制长度)
- shell - 如何将输出重定向到多个变量?
- mysql - MariaDB:操作太慢了。在过去 30 秒内传输少于 1 字节/秒
- java - 使用 Java 传输文件
- c++ - 这个 C++ 指针使用线程安全吗?
- angular - Angular 6 提供的不起作用-> StaticInjectorError
- python - 我应该使用日志记录模块还是 python 的调试器?
- javascript - 可摇树的静态方法(同时使用 rxjs 和 lodash)