PHPMailer不会发送html消息

时间:2016-01-22 20:14:16

标签: php phpmailer

我在使用php邮件发送基于html的邮件时遇到问题。 stackoverflow中的一些答案说要包含$ mail-> isHTML(true)我做但没有结果..这里是代码

require '...';      
$mail = new PHPMailer;        
$mail->isSMTP();
$mail->Host = '...';  
$mail->SMTPAuth = true;
$mail->Username = '...'; 
$mail->Password = '...';                              
$mail->setFrom("....");
$mail->addAddress("...");                 
$mail->Subject = "...";
$mail->Body    = "<li>abcd</li>";
$mail->isHTML(true); 
if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}

有谁知道什么是错的?

谢谢!

1 个答案:

答案 0 :(得分:3)

<li>abcd</li>还不够,还应包含<ul></ul>个标签。您需要使用<!DOCTYPE html><head></head><body>...</body></html>作为正确的完整HTML标记并连接$mail->Body

$mail->Body     = "<!DOCTYPE html>"; // the first one does not contain the dot
$mail->Body    .= "<head></head>";
$mail->Body    .= "<title></title>";
$mail->Body    .= "<body>";
$mail->Body    .= "<ul>";
$mail->Body    .= "<li>abcd</li>";
$mail->Body    .= "</ul>";
$mail->Body    .= "</body>";
$mail->Body    .= "</html>";

您也可以将<ul></ul>替换为<ol></ol>,具体取决于您要使用的类型。