我在使用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';
}
有谁知道什么是错的?
谢谢!
答案 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>
,具体取决于您要使用的类型。