【问题标题】:Html email ignores all the inline cssHtml 电子邮件忽略所有内联 css
【发布时间】:2013-05-01 19:54:34
【问题描述】:

我通过 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?

【问题讨论】:

  • 我在这里没有看到任何内联 CSS,你能显示它应该在哪里吗?
  • @Pekka웃 &lt;div style="...."&gt;....&lt;/div&gt;
  • 好的,但我想看看实际的样式
  • 我只是使用颜色和字体大小等基本样式。
  • 您是在网络邮件客户端还是其他什么地方查看此内容?许多人不允许使用 CSS。

标签: php html css ajax


【解决方案1】:

当您设计时事通讯的样式时,最好将您的文本包裹在字体标签中。电子邮件客户端对其解析非常非常挑剔。您应该像 1990 年那样编写代码(带有表格)。

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

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

【讨论】:

    【解决方案2】:

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

    有关更多详细信息,请查看 Campaign Monitor 上的 CSS SupportE-mail Design Guidelines

    【讨论】:

      【解决方案3】:

      你需要使用 css 内联,像这样:

      <div style="width:300px; margin: 10;">Content!</div>
      
      <font style="font-size:14px">Text</font>
      

      【讨论】:

        【解决方案4】:

        $email_body = stripslashes($_POST[divcontent]);解决了我的问题。谢谢大家的回复。

        【讨论】:

          猜你喜欢
          • 2018-04-20
          • 1970-01-01
          • 2020-11-26
          • 2023-04-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-01
          • 1970-01-01
          相关资源
          最近更新 更多