Я использую 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();
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<noreply@example.com>\r\n"; $headers .= "Reply-To: info@example.com\r\n"; $headers .= "Return-Path: info@example.com\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); ?>
Вам нужно установить IsHTML(true)
:
$mail->IsHTML(true);
В почтовой программе PHP вы должны установить ниже
$mail->IsHTML(true);
Примечание. $mail
означает ваш объект PHPMailer.
Ссылка ссылки: PHPMailer