【发布时间】:2017-05-08 07:21:53
【问题描述】:
我正在使用 jQuery 从 div 中获取所有内容,包括其子元素。
DIV 内容:
<div class="content">
<h1 style="color:red">Test Title</h1>
<p style="color:blue">Test Description</p>
</div>
使用下面的 jQuery 在新变量中收集数据:
emailContent = $( ".content" ).html();
然后我创建一个 AJAX 帖子如下:
$.ajax({
type: 'POST',
url: ajax_object.ajaxurl,
data: {
"action": "action1",
"emailContent":emailContent
}
});
我正在使用 wp_mail() 函数使用内容发送电子邮件,但是一旦发送电子邮件,所有样式都将被忽略。
wp_mail 函数是这样编码的:
$to = 'xx@xx.com';
$subject = 'Subject';
$message = $_POST['emailContent'];
$headers = array('Content-Type: text/html; charset=UTF-8');
wp_mail( $to, $subject, $message, $headers );
当我将 Content-type 更改为 text/plain 时,输出如下:
<div class=\"emailContent\"> <h1 style=\"color:red\">Test Title</h1> <p style=\"color:blue\">Test Description</p> </div>
当类型是 HTML 时,斜线会是格式不正确的原因吗?
关于在通过 AJAX 帖子发送数据时如何保留内联样式的任何想法?
【问题讨论】:
-
你能把你收到的邮件发给你吗?
-
样式属性肯定包含在字符串中,如您在此处看到的:jsfiddle.net/pr051kw4。如果它被剥离,要么是由于您正在使用的电子邮件发送库,要么是电子邮件客户端忽略了它。后者很可能是因为电子邮件中的 CSS 非常受欢迎。当涉及到电子邮件中的 HTML 时,您需要想象它是 1997 年,而您正在为在 IE3 中看到您的内容而写作。
-
HTML 邮件——尤其是它的样式——是一个雷区,它本身就是一个专业领域。如果邮件没有以某种方式配置(或者有时即使是这样),许多电子邮件客户端会删除部分或全部样式。您可能需要研究诸如 SendInBlue 之类的服务来以这种方式发送模板邮件。
-
您提到wp_mail,您是否将内容类型设置为HTML?否则它可能会剥离你的 HTML developer.wordpress.org/reference/functions/wp_mail/…
-
@RoryMcCrossan 我知道 HTML 电子邮件真的很挑剔,你需要考虑老派,但它只是我正在测试但仍然无法正常工作的颜色。
标签: javascript jquery html css ajax