phpmailer str_replace несколько раз

У меня есть следующие настройки:

        $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

Решение

Хотя я не вижу, как подстановка переменных $message может нарушить ваш код, есть форма множественной замены str_replace который использует аргументы массива:

$mail->msgHTML(
str_replace(
array('[password]','[name]'),
array( $password, $email['name'] ),
file_get_contents('./site/resources/external/template.html')
),
dirname(__FILE__)
);

Я подозреваю, что с вашим кодом что-то не так, но это может быть полезно.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector