У меня есть следующие настройки:
$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
может нарушить ваш код, есть форма множественной замены str_replace
который использует аргументы массива:
$mail->msgHTML(
str_replace(
array('[password]','[name]'),
array( $password, $email['name'] ),
file_get_contents('./site/resources/external/template.html')
),
dirname(__FILE__)
);
Я подозреваю, что с вашим кодом что-то не так, но это может быть полезно.
Других решений пока нет …