phpmailer str_多次更换

phpmailer str_多次更换,php,phpmailer,Php,Phpmailer,我有以下设置: $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/ex

我有以下设置:

        $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__));
它发送没有问题


那么我如何才能将多个变量添加到模板中呢?

虽然我不知道
$message
的变量替换是如何破坏代码的,但是有一种使用数组参数的
stru replace
的多替换形式:

$mail->msgHTML( 
  str_replace( 
    array('[password]','[name]'), 
    array( $password, $email['name'] ),
    file_get_contents('./site/resources/external/template.html')
  ),
  dirname(__FILE__)
);
我怀疑您的代码有其他问题,但这可能很有用。

“它不发送”不是一个有用的描述。到底什么是失败的?你看到了什么错误?您可以尝试使用诸如Smarty或Twig之类的模板引擎。