当首先将文件存储在变量中时,哪种img数据会丢失



我想用PHPMailer发送一封电子邮件,并使用以下HTML模板:

$mail->msgHTML()

使用时:

$mail->msgHTML(file_get_contents('./contents.html'), __DIR__);

一切都按预期进行,并且电子邮件包含图像,而不附带。但是如果我将文件内容存储在一个变量中,比如:

$body = file_get_contents('./contents.html');
$mail->msgHTML($body);

图像数据丢失。为什么在先将文件内容读取到变量中时,发送的电子邮件中不包括我的图像?-OR-哪种(部分(数据丢失?为什么我必须将其作为附件发送才能使其工作?

HTML代码供参考:

<td style="font-size: 12px; color:#929292; text-align:center; font-family: sans-serif;">
<img src="./logo_nav.png" alt="" sizes="" srcset="">
</td>

根据phpmailer文档,您需要包含basedir参数:

如果你不提供$basedir,相对路径将保持不变(因此可能会破坏电子邮件(

完成此操作后,图像将自动内联。如果用__DIR__调用它,它应该可以工作:

$mail->msgHTML($body, __DIR__);

最新更新