如何在phpmailer中添加HTML格式?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (57)

我正在使用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 />等不格式化我想要的,但实际的HTML。它一直为我工作,然后我意识到我正在使用股票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();
提问于
用户回答回答于

默认情况下,PHP mail()函数是text/plain

在你的mail()标题中,更改content-typetext/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:

你需要设置IsHTML(true)

$mail->IsHTML(true);
用户回答回答于

在PHP邮件程序中,你需要在下面设置

$mail->IsHTML(true);

注意:$mail表示你的PHPMailer对象。

扫码关注云+社区