使用HTML格式的CKEditor发送电子邮件

时间:2014-03-04 19:18:21

标签: javascript php html email

我在使用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>

感谢您的帮助

4 个答案:

答案 0 :(得分: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>';

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

答案 1 :(得分:0)

文档很简单;您需要指定指示邮件包含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);

答案 2 :(得分:0)

这有帮助吗?

How-To-Code-Html-Emails

建议您使用Multipart / Alternative MIME

发送html电子邮件

答案 3 :(得分:0)

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

$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));