【问题标题】:PhpMailer Sent email content is show only plain text not contain with HTML stylesPhpMailer 发送的电子邮件内容仅显示纯文本,不包含 HTML 样式
【发布时间】:2020-10-08 12:15:26
【问题描述】:

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

这里附上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>

任何人都可以找到解决此问题的方法吗?

【问题讨论】:

    标签: php html codeigniter phpmailer summernote


    【解决方案1】:

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

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

    只需传递 $content 而不使用 strip_tags 函数。

    【讨论】:

    • 谢谢@kopz,我没有注意到,现在它工作正常......
    【解决方案2】:

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

    $mail->isHTML(true);
    

    这适用于 html 格式。

    【讨论】:

    • 谢谢你的回答先生,我已经包含了这个功能,按照上面@kopz的回答它现在工作正常
    • 太棒了。它具有不同的语法。希望将来会帮助其他人。
    猜你喜欢
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 2012-10-31
    • 2021-04-12
    • 1970-01-01
    • 2018-04-22
    相关资源
    最近更新 更多