Html电子邮件忽略所有内联css

时间:2013-05-07 18:37:34

标签: php html css ajax

我通过ajax调用将内容从html发布到php。我想发送一封包含该发布内容的html电子邮件。我回应了所有内联css的发布数据。但是在邮件中我只能看到没有css效果的html内容。

我的HTML代码会包含一些内容可编辑功能的静态内容。

           <form id="form"name="form" method="post" action="xyz.php"  onsubmit="this.divcontent.value =    document.getElementById('email_body').innerHTML;">
           <input type="hidden" name="divcontent" id="divcontent" value="" />
           <div id="email_body" class="field" role="textbox" contenteditable="true">
           <div style="....">......</div>
           <a>.....</a>
           <div style="....">....</div>
           <div style="....">....</div>
           </div>
           <div class="send_mail"><button type="submit">Send</button></div>
           </form>

我的ajax电话

             $.ajax({
                        type : 'POST',
                        url : $("#form").attr('action'),
                        data : fields,
                        dataType : 'json',
                        success: function() {......}....});

我的php代码正在发送没有css效果的邮件。

        <?
            $email_body = $_POST[divcontent];
            $headers .= "MIME-Version: 1.0\r\n";
            $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";




                        //create email headers
                        $headers .= 'From: '.$email_from."\r\n".
                        'Reply-To: '.$emailid_from."\r\n" .
                        'X-Mailer: PHP/' . phpversion();
                        @mail($email_to, $email_subject, $email_body, $headers); 
               $array = array('error' => false, 'message' => $message);
               echo json_encode($array);
              echo json_encode($array);
    ?>


any suggestions?

4 个答案:

答案 0 :(得分:1)

在为新闻稿设计样式时,最好将文本包装在字体标记中。电子邮件客户端对解析非常非常挑剔。你应该编写类似1990年的代码(带表格)。

<font face="verdana" color="green">This is some text!</font>

字体标记:http://www.w3schools.com/tags/tag_font.asp

答案 1 :(得分:1)

由于安全性,呈现或广告问题,许多内联样式已从电子邮件客户端(桌面和基于Web)中删除。 <div>标记上的内联样式很可能会被剥离。目前的最佳做法是使用<p>代码代替font-sizecolor样式。

有关详情,请查看广告系列监视器上的CSS SupportE-mail Design Guidelines

答案 2 :(得分:0)

你需要使用内联的css,如下所示:

<div style="width:300px; margin: 10;">Content!</div>

<font style="font-size:14px">Text</font>

答案 3 :(得分:0)

$ email_body = stripslashes($ _ POST [divcontent]);解决了我的问题。感谢所有的回复。