我想通过PHPMailer发送电子邮件,并使用HTML模板,方法是:
$mail->msgHTML()
使用时:
$mail->msgHTML(file_get_contents('./contents.html'), __DIR__);
一切正常,并且电子邮件中包含图片,无附加了图片。但是,如果我将文件内容存储在这样的变量中:
$body = file_get_contents('./contents.html');
$mail->msgHTML($body);
图像数据丢失。首先将文件内容读入变量时,为什么我的图像没有包含在发送的电子邮件中?-或者-丢失了哪种(部分)数据?为什么我必须将其作为附件发送才能使用?
供参考的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 docs,您需要包括basedir参数:
如果您不提供$ basedir,则相对路径将保持不变(因此可能会破坏电子邮件)
因此,如果您用__DIR__
调用它,它将起作用:
$mail->msgHTML($body, __DIR__);