Добавить форматирование HTML в phpmailer
Я использую PHP-mailer для отправки онлайн-формы непосредственно по электронной почте. Я хочу изменить форму следующим образом:
$message = '<p>The following request was sent from: '</p>;
$message .= '<p>Name: '.$name.'</p><br />';
$message .= '<p>Phone: '.$phone.'</p><br />';
$message .= '<p>Email: '.$email.'</p><br />';
Однако в электронном письме я получаю обратно, я получаю <p>
, <br />
и т.д. Не форматирование, которое я хочу, а фактический HTML. Это всегда работало для меня, тогда я понял, что использую функцию PHP PHP. не уверен, что PHP-почтовая программа имеет разные параметры, или если я просто отсутствую здесь?
Где бы я устанавливал заголовки для text/html?
$mail = new PHPMailer();
$mail -> IsSMTP();
$mail -> Host = "---";
$mail -> Port = 25;
$mail -> SMTPAuth = false;
$mail -> Username = EMAIL_USER;
$mail -> Password = EMAIL_PASS;
$mail -> FromName = $from_name;
$mail -> From = $from;
$mail -> Subject = $subject;
$mail -> Body = $message;
$mail -> AddAddress("---");
$result = $mail -> Send();
Ответы
Ответ 1
По умолчанию функция PHP mail()
text/plain
.
В заголовках mail()
измените content-type
на text/html
и попробуйте.
Пример:
<?php
$body = "<html>\n";
$body .= "<body style=\"font-family:Verdana, Verdana, Geneva, sans-serif; font-size:12px; color:#666666;\">\n";
$body = $message;
$body .= "</body>\n";
$body .= "</html>\n";
$headers = "From: My site<[email protected]>\r\n";
$headers .= "Reply-To: [email protected]\r\n";
$headers .= "Return-Path: [email protected]\r\n";
$headers .= "X-Mailer: Drupal\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
return mail($recipient, $subject, $message, $headers);
?>
PHP Mailer:
Вам нужно установить IsHTML(true)
:
$mail->IsHTML(true);
Ответ 2
В почтовой программе PHP вам нужно установить ниже
$mail->IsHTML(true);
Примечание: $mail
означает ваш объект PHPMailer.
Ссылка ссылки: PHPMailer