【问题标题】:send HTML email using ckeditor in php在 php 中使用 ckeditor 发送 HTML 电子邮件
【发布时间】:2015-07-07 11:36:18
【问题描述】:

我正在使用 php 使用 CKEditor 发送 html 电子邮件。我可以在我的收件箱中收到邮件。但它的格式不正确。我希望收件箱中有 HTML 格式的电子邮件。目前它正在显示 HTML 代码,如输出中所示。如果有任何问题,您能帮我使用 PHP 发送 HTML 格式的电子邮件,或者看看我现有的代码吗?
请查看代码及其输出。

<script src="//cdn.ckeditor.com/4.4.7/standard/ckeditor.js"></script>
<div class="panel-body">
<?php if (!isset($_POST['email'])) { ?>
 <form class="form-horizontal" role="form" method="post">
    <div class="form-group">
       <label for="inputEmail3" class="col-sm-2 control-label">To</label>
         <div class="col-sm-10">
          <input type="text" class="form-control" id="inputEmail3" placeholder="" name="to_email">
         </div>
    </div>

    <div class="form-group">
       <label for="inputPassword3" class="col-sm-2 control-label">Subject</label>
       <div class="col-sm-10">
       <input type="text" class="form-control" id="inputPassword3" placeholder="" name="subject_email">
       </div>
       </div>
       <div class="form-group">
       <label for="message_email" class="col-sm-2 control-label">Message</label>
       <div class="col-sm-10">
       <textarea class="form-control" id="message_email" rows="3" name="message_email"></textarea>
       </div>
       </div>

       <div class="form-group">
       <div class="col-sm-offset-2 col-sm-10">
       <button type="submit" class="btn btn-primary" name="email">Send</button>
       </div>
       </div>
       </form>
       <?php
       } else {
       if (!empty($_POST['to_email'])) {
       $message = htmlspecialchars($_POST['message_email']);
       $subject = htmlspecialchars($_POST['subject_email']);
       $headers = '';
       $headers = 'MIME-Version: 1.0' . "\r\n";
       $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
       $headers.="From: admin@expertsusa.org";
       $email_to = $_POST['to_email'];
       echo '<div class="row">';
       $html = stripcslashes($message);
       if (mail($email_to, $subject, $html, $headers)) {
       echo '<div class="col-md-12"> Success :' . $email_to . '</div>';
       } else {
       echo '<div class="col-md-12"> Fail :' . $email_to . '</div>';
       }
       echo '</div>';
       }
       }
       ?> 
       <div class="row">
       <div class="col-md-5"></div>

       </div>
       </div><script>
    CKEDITOR.replace( 'message_email' );</script>

此代码可以发送任何电子邮件 ID 的邮件,但它的输出是:

&lt;p&gt;hi I am &lt;strong&gt;here&lt;/strong&gt;&lt;/p&gt; &lt;hr /&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;

我尝试了很多解决方案,但都没有取得成果。 请有人可以告诉我这个问题的解决方案。

提前致谢

【问题讨论】:

  • 您的问题到底是什么?这个问题没有问号。
  • 我的问题是,为什么这段代码会在我的收件箱中显示 HTML 代码?甚至我已经添加了'Content-type: text/html; charset=iso-8859-1' 作为标题。
  • 为什么不charset=UTF-8 或者干脆删除它
  • 注意:如果我传递了静态 html 值,那么它工作正常。
  • $html ="

    jaswinder singh

    ";所以我认为问题出在 $html = stripcslashes($message);

标签: php html ckeditor html-email


【解决方案1】:

我找到了解决方案,我在这里犯了错误

$message = htmlspecialchars($_POST['message_email']);

应该是

$message = $_POST['message_email'];

【讨论】:

    【解决方案2】:

    使用这个$headers

    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    

    并使用 $message

    $message = mysql_real_escape_string($_POST['message_email']);
    

    【讨论】:

    • @Hanaa 你能详细说明一下这个问题吗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    相关资源
    最近更新 更多