我正在使用PHP邮件程序直接发送一个在线表格到电子邮件。我想像这样编辑表单:
$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 />
等。它对我来说一直很有效,然后我意识到我使用的是常用的PHP邮件函数。不确定PHP邮件程序是否有不同的参数,或者我只是在这里遗漏了小参数?
在哪里设置文本/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();
发布于 2012-12-10 01:50:49
默认情况下,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<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);
?>
PHP Mailer:
您需要设置IsHTML(true)
$mail->IsHTML(true);
发布于 2012-12-10 01:53:23
https://stackoverflow.com/questions/13789989
复制相似问题