所以我使用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
行的文件名中硬编码它可以工作,但是当我使用变量名时却不行。任何人都知道是否有可能或是否有更好的方式来发送即时生成的电子邮件?
答案 0 :(得分:2)
行情很重要。更改
中的单引号$body = file_get_contents('path/to/file/$fileName');
加双引号
$body = file_get_contents("path/to/file/$fileName");
答案 1 :(得分:1)
仅使用双引号(")PHP将解释变量名称