PHPMailer с содержимым тела, сгенерированным на лету - PullRequest
0 голосов
/ 06 июня 2018

Поэтому я использую PHPMailer для отправки электронной почты в базу данных пользователей раз в неделю, используя запланированные задачи моего веб-хостинга.Однако содержимое электронной почты необходимо генерировать во время выполнения запланированной задачи.

В моем коде я создаю содержимое HTML, генерирую файл HTML и сохраняю его в каталоге на сервере.затем попробуйте использовать этот недавно созданный HTML-файл в качестве основного содержимого письма.

Однако, когда я запускаю страницу, я получаю:

Mailer Error (xxxxxxxxxxx@xxxxx.xxx) Message body empty

Любые идеи, какрешить это?Код ниже:

$emailMessage .= "HTML code is in here.";

$fileName = date("YmdHis") . "-email.html";
$newEmail = fopen("path/to/file/$fileName", "w") or die("Unable to open file!");
fwrite($newEmail, $emailMessage);
fclose($newEmail);

$body = file_get_contents('path/to/file/$fileName');

$mail = new PHPMailer;
$mail->isSMTP();
$mail->msgHTML($body);

etc etc

Если я жестко прописываю имя файла в строке $body, это работает, но не тогда, когда я использую имя переменной.Кто-нибудь знает, возможно ли это или есть лучший способ отправить электронное письмо, созданное на лету?

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Только с использованием двойных кавычек (") PHP будет интерпретировать имена переменных

0 голосов
/ 06 июня 2018

Цитаты имеют значение.Измените одинарные кавычки в

$body = file_get_contents('path/to/file/$fileName');

На двойные кавычки

$body = file_get_contents("path/to/file/$fileName");
...