phpmailer str_replace多次

时间:2014-10-01 09:05:41

标签: 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/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__));

它发送没有问题。

那么如何在模板中添加多个变量?

1 个答案:

答案 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__)
);

我怀疑你的代码还有其他问题,但这可能很有用。