我有以下设置:
$message = file_get_contents('./site/resources/external/template.html');
$message = str_replace('[name]', $email['name'], $message);
$message = str_replace('[password]', $password, $message);
require './site/resources/external/PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer();
$mail->SMTPSecure = 'tls';
$mail->Username = "mymail";
$mail->Password = "mypassword";
$mail->AddAddress($email);
$mail->FromName = "Marc";
$mail->CharSet = 'UTF-8';
$mail->Subject = "Din nye adgangskode";
$mail->msgHTML($message, dirname(__FILE__));
$mail->Host = "smtp.live.com";
$mail->Port = 587;
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->From = $mail->Username;
$mail->Send();
但是当我尝试发送它时,它不会发送。
然而,当我喜欢这样的时候:
但是,当我执行以下操作时:
$mail->msgHTML(str_replace('[password]', $password, file_get_contents('./site/resources/external/template.html')), dirname(__FILE__));
它发送没有问题。
那么如何在模板中添加多个变量?
答案 0 :(得分:1)
虽然我不知道$message
的变量替换如何破坏您的代码,但是有str_replace
的多重替换形式使用数组参数:
$mail->msgHTML(
str_replace(
array('[password]','[name]'),
array( $password, $email['name'] ),
file_get_contents('./site/resources/external/template.html')
),
dirname(__FILE__)
);
我怀疑你的代码还有其他问题,但这可能很有用。