我想使用 PhpMailer 将 php 页面数据作为正文发送到邮件中。
我的所有代码都正常工作。
我的主页代码:
<?php
require_once('libs/PHPMailer/PHPMailerAutoload.php');
require 'libs/PHPMailer/class.phpmailer.php';
$some_page_contents = file_get_contents('welcome.php');
$mail = new PHPMailer();
$mail->IsMail();
$mail->Host = "smtp.example.com";
$mail->Username = "first@example.com";
$mail->Password = "example";
$mail->SetFrom("first@example.com","first User");
$mail->AddAddress("second@example.com");
$mail->isHtml(true);
$mail->Subject = "Second PHPMailer Message";
$mail->Body = $some_page_contents;
$mail->WordWrap = 50;
$mail->Send();
?>
我的欢迎.php代码
<?php
echo 'hello';
在邮件中,我收到了<?php echo 'hello';
为什么我也在邮件中得到 php 正文?
我已经遇到过很多次了。我有许多应用程序需要发送模板化电子邮件。我通过让我的模板加载一个变量来解决这个问题。例如,在我的主文件中,我将只有一个包含语句来包含模板文件。包含后,我将消息正文设置为指定的变量,让我们将其称为$body。但是在实际的模板文件中,我将像这样设置正文。
$body = <<<EOF
Hello $name!!
EOF;
这样,您可以在模板文件中运行PHP代码并返回变量。
我解决此问题的另一种方法是仅使我的模板为纯文本,但使用像 {name} 这样的占位符,并且只需使用 str_replace 函数将 {name} 的所有实例替换为实际的变量值。
这些都不是真正的答案,而更多的是替代方案。祝你好运。