【问题标题】:Send emails using CKEditor in HTML format使用 CKEditor 以 HTML 格式发送电子邮件
【发布时间】:2014-03-04 19:18:21
【问题描述】:

我在使用 CKEditor 发送 HTML 格式的电子邮件时遇到问题。我有最新的并安装到我的网站上。这是我用于测试软件的简单联系表,但每次我在 HTML 中插入链接或其他内容时,电子邮件中的输出都是

我的代码是:

    <script src="/ckeditor/ckeditor.js" type="text/javascript"></script>
<link rel="stylesheet" href="/ckeditor/sample.css">
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<html>
<?php 
$action=$_REQUEST['action']; 
if ($action=="")    /* display the contact form */ 
    { 
    ?> 
    <form  action="" method="POST" enctype="multipart/form-data"> 
    <input type="hidden" name="action" value="submit"> 
    Your name:<br> 
    <input name="name" type="text" value="" size="30"/><br> 
    Your email:<br> 
    <input name="email" type="text" value="" size="30"/><br> 
    Your message:<br> 
    <textarea name="message" class="ckeditor"></textarea><br> 
    <input type="submit" value="Send email"/> 
    </form> 
    <?php 
    }  
else                /* send the submitted data */ 
    { 
    $name=$_REQUEST['name']; 
    $email=$_REQUEST['email']; 
    $message=$_REQUEST['message']; 
    if (($name=="")||($email=="")||($message=="")) 
        { 
        echo "All fields are required, please fill <a href=\"\">the form</a> again."; 
        } 
    else{         
        $from="From: $name<$email>\r\nReturn-path: $email"; 
        $subject="Message sent using your contact form"; 
        mail("email@example.com", $subject, $message, $from); 
        echo "Email sent!"; 
        } 
    }   
?>
</html>

感谢您的帮助

【问题讨论】:

  • 可能邮件内容类型不是 HTML。无论如何,我建议使用邮件发送库,例如 SwiftMailer
  • 您得到了您需要的帮助吗?什么有效?

标签: javascript php html email


【解决方案1】:

那是因为您需要在mail() 函数中添加正确的标题,否则它将发送纯文本电子邮件。

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

您可以将内容添加到电子邮件中:

$message = '<html><body>';
$message .= '<h1>Cool Email</h1>';
$message .= '</body></html>';

他们应该工作..祝你好运

【讨论】:

    【解决方案2】:

    文档简单明了;您需要指定表明邮件包含 HTML 的电子邮件标题:docs

    参见示例#4

    具体来说:

    // To send HTML mail, the Content-type header must be set
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    

    然后将它们与您现有的代码放在一起:

    $headers .= "\r\n" . $from;
    mail($to, $subject, $message, $headers);
    

    【讨论】:

      【解决方案3】:

      这有帮助吗?

      How-To-Code-Html-Emails

      建议在 Multipart/Alternative MIME 中发送您的 html 电子邮件

      【讨论】:

        【解决方案4】:

        我想我会给出一个简单的答案,因为我只是花了很长时间才弄清楚这一点。希望它可以帮助某人。

        $send_to = $_POST['send_to']; 
        $subject= $_POST['subject']; 
        $body= $_POST['body']; 
        $headers[] = 'MIME-Version: 1.0';
        $headers[] = 'Content-type: text/html; charset=iso-8859-1';
        $headers[] = 'From: Your name <your@email.com>';
        
        
        $msg = '<html><body><head></head>';
        $msg .= "Dear $first_name $last_name, \n$body"; 
        $msg .= '</body></html>';
        
        mail($email, $subject, $msg, implode("\r\n", $headers));
        

        【讨论】:

          猜你喜欢
          • 2010-11-26
          • 2014-06-22
          • 1970-01-01
          • 1970-01-01
          • 2016-04-04
          • 2015-08-04
          相关资源
          最近更新 更多