我通过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?
答案 0 :(得分:1)
在为新闻稿设计样式时,最好将文本包装在字体标记中。电子邮件客户端对解析非常非常挑剔。你应该编写类似1990年的代码(带表格)。
<font face="verdana" color="green">This is some text!</font>
答案 1 :(得分:1)
由于安全性,呈现或广告问题,许多内联样式已从电子邮件客户端(桌面和基于Web)中删除。 <div>
标记上的内联样式很可能会被剥离。目前的最佳做法是使用<p>
代码代替font-size
和color
样式。
有关详情,请查看广告系列监视器上的CSS Support和E-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]);解决了我的问题。感谢所有的回复。