Какой вид данных img теряется при первом сохранении файла в переменной? - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу отправить электронное письмо с 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>

1 Ответ

1 голос
/ 14 апреля 2020

Согласно phpmailer docs , вам нужно включить параметр basedir:

Если вы не предоставите $ basedir, относительные пути останутся нетронутыми (и таким образом, вероятно, перерыв в электронной почте)

Как только вы сделаете это, изображения будут автоматически вставлены. Если вы называете это с __DIR__, оно должно работать:

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