PhpMailer 发送的电子邮件内容仅显示纯文本,不包含 HTML 样式

PhpMailer Sent email content is show only plain text not contain with HTML styles

我在 codeigniter 中使用 PhpMailer 库发送电子邮件,电子邮件发送过程工作正常,我使用 summernote 编写我的电子邮件内容,summernote 生成 HTML 格式化我在 summernote 中编辑的内容,但是当我发送一封邮件,收到的邮件都是纯文本,我不知道为什么会这样..

这里附上PhpMailer函数,

function send_email_common_method($email_id,$password,$to,$subject,$content,$attach_file,$ccmailarray,$bccmailarray,$email_id_name) {
  include_once(APPPATH."third_party/PHPMailer/PHPMailerAutoload.php");
  $mail = new PHPMailer;
  $mail->IsHTML(true);
  $mail->isSMTP();
  $mail->Host = 'smtp.gmail.com';
  $mail->Port = 465;//587
  $mail->SMTPSecure = 'ssl';
  $mail->SMTPAuth = true;
  $mail->Username = $email_id;
  $mail->Password = $password;
  $mail->setFrom($email_id, $email_id_name);
  $mail->addAddress($to);
  $mail->Subject = $subject;
  $mail->msgHTML(strip_tags($content));
  $mail->addAttachment($attach_file);
  foreach($ccmailarray as $ccarray)
  {
    $mail->AddCC($ccarray);
  }
  foreach($bccmailarray as $bccarray)
  {
    $mail->AddBCC($bccarray);
  }
  //print_r($mail);exit;
  if (!$mail->send()) {
    $error = "Mailer Error: " . $mail->ErrorInfo;
    return 0;
  //echo '<p id="para">'.$error.'</p>';exit;
  }
  else {
    return 1;
  }

}

下面附上summernote查看代码,

<!--Wysiwyg editor : Summernote placeholder-->
<textarea name="reply_content_email" class="reply_content_email" id
   ="reply-mailbox-mail-compose"></textarea>
<p class="text-danger" id="reply_content_email_err"></p>
<!-- <div ></div> -->
<div class="pad-ver">
   <!--Send button-->
   <button id="mail-send-btn" type="submit" name="btn_submit"  class="btn btn-primary">
   <i class="mailbox-psi-mail-send icon-lg icon-fw"></i> Reply Mail
   </button>
</div>

有人能找到解决这个问题的方法吗?

您正在使用 strip_tags 函数删除所有 HTML 标签。

$mail->msgHTML(strip_tags($content));

不带strip_tags函数就传$content

如果您使用的是 PHPMailer,那么您可以使用

$mail->isHTML(true);

这将适用于 html 格式。