我想用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__);