Javascript 用于Gmail的html电子邮件中表格的内联样式,并使用PHPMailer发送
我在这件事上花了这么多时间,但我仍然感到困惑 目标:将样式(内联)应用于使用PHPMailer发送的Gmail的html电子邮件中的table、td、th、p元素 问题:内联样式未显示 HTML代码:Javascript 用于Gmail的html电子邮件中表格的内联样式,并使用PHPMailer发送,javascript,php,html,css,email,Javascript,Php,Html,Css,Email,我在这件事上花了这么多时间,但我仍然感到困惑 目标:将样式(内联)应用于使用PHPMailer发送的Gmail的html电子邮件中的table、td、th、p元素 问题:内联样式未显示 HTML代码: <section id="email"> <table cellspacing="0" cellpadding="25" border="10" style="font-family: Arial, sans-serif; text-align: center;">
<section id="email">
<table cellspacing="0" cellpadding="25" border="10" style="font-family: Arial, sans-serif; text-align: center;">
<tbody>
<tr>
<th style="border: 1px solid rgb(255, 0, 0);">A</th>
<th style="border: 1px solid rgb(255, 0, 0);">B</th>
<th style="border: 1px solid rgb(255, 0, 0);">C</th>
<th style="border: 1px solid rgb(255, 0, 0);">D</th>
</tr>
<tr>
<td style="border: 1px solid rgb(255, 0, 0);">red</td>
<td style="border: 1px solid rgb(255, 0, 0);">100</td>
<td style="border: 1px solid rgb(255, 0, 0);">120</td>
<td style="border: 1px solid rgb(255, 0, 0);">45</td>
</tr>
<tr>
<td style="border: 1px solid rgb(255, 0, 0);">blue</td>
<td style="border: 1px solid rgb(255, 0, 0);">50</td>
<td style="border: 1px solid rgb(255, 0, 0);">250</td>
<td style="border: 1px solid rgb(255, 0, 0);">35</td>
</tr>
<tr>
<td style="border: 1px solid rgb(255, 0, 0);">green</td>
<td style="border: 1px solid rgb(255, 0, 0);">65</td>
<td style="border: 1px solid rgb(255, 0, 0);">180</td>
<td style="border: 1px solid rgb(255, 0, 0);">360</td>
</tr>
</tbody>
</table>
<p style="color:#FF0000;font-weight: bold;">I want this text to be bold and red!</p></section>
A.
B
C
D
红色
100
120
45
蓝色
50
250
35
绿色
65
180
360
我希望此文本为粗体和红色
JS代码:
var data = {
to:"test@gmail.com",
from:"<my@email.com>",
fromName:"me",
subject:"test html email",
message: $("#email").html()
};
$.ajax({
type: "POST",
url: "email.php",
data: data,
success: function(){
alert("email sent");
}
});
var数据={
至:test@gmail.com",
从:“,
fromName:“我”,
主题:“测试html电子邮件”,
信息:$(“#电子邮件”).html()
};
$.ajax({
类型:“POST”,
url:“email.php”,
数据:数据,
成功:函数(){
警报(“已发送电子邮件”);
}
});
email.php代码:
<?php
require '../PHPMailer-5.2.9/PHPMailerAutoload.php';
if($_POST){
$mail = new PHPMailer;
$mail->From = $_POST['from'];
$mail->FromName = $_POST['fromName'];
$mail->addAddress($_POST['to']);
$mail->Subject = $_POST['subject'];
$mail->Body = $_POST['message'];
$mail->AltBody = $_POST['messageAlt'];
$mail->isHTML(true);
$mail->send();
}
?>
我确实收到了Gmail中包含所有数据的电子邮件。但是,html中的内联样式被完全忽略
提前感谢所有花时间回复的人 好吧,我设法弄明白了 我的PHP代码有问题。HTML字符串需要去掉反斜杠。首先,我将消息存储在$body变量中,用“stripslashes($body)”去掉斜杠,然后通过“MsgHTML($body)”将$body附加到$mail 以下是修订后的PHP:
<?php
require '../PHPMailer-5.2.9/PHPMailerAutoload.php';
if($_POST){
$mail = new PHPMailer;
$body = $_POST['message'];
$body = stripslashes($body);
$mail->From = $_POST['from'];
$mail->FromName = $_POST['fromName'];
$mail->addAddress($_POST['to']);
$mail->Subject = $_POST['subject'];
$mail->MsgHTML($body);
$mail->AltBody = "Alternate Content";
$mail->isHTML(true);
$mail->send();
?>