我遇到了使用正确的格式通过电子邮件发送PHP页面的问题。该页面包含由简单<TD>
和<TR>
组成的表格以及用于将负数转为红色的javascript,javascript显示如下:
<head>
<style type="text/css">
td.negative { color : red; }
</style>
<script language="JavaScript" type="text/javascript">
<!--
function MakeNegative() {
TDs = document.getElementsByTagName('td');
for (var i=0; i<TDs.length; i++) {
var temp = TDs[i];
if (temp.firstChild.nodeValue.indexOf('-') == 0) temp.className = "negative";
}
}
//-->
</script>
</head>
<body>
<~~~~~~~tables goes here~~~~~~~>
<script language="JavaScript" type="text/javascript">
<!--
MakeNegative();
//-->
</script>
</body>
我可以使用互联网浏览器以正确的格式显示网页:
但是当我用PHPMailer或mailsend.exe邮寄它时,格式变得混乱,红色和表格中的负数不再混乱。以下是发送到Gmail帐户的屏幕截图:
以下是发送到Outlook(hotmail)帐户的屏幕截图:
(你需要至少10个声望才能发布超过2个链接......我最好在评论中发布链接,请检查,谢谢)
我该如何解决这个问题?
答案 0 :(得分:2)
你需要使用内联css,许多网络电子邮件提供商在样式块中禁用css样式,如:
<style>
</style>
所以,你真的需要:
<td style="color: red;">-1</td>
每个。
此外,有人指出,这种创作可以完全用PHP完成。虽然,看起来你似乎没有问题。如果你使用所有内联样式,你会没事的。
当您从数据库中提取数据时,只需按以下方式构建行:
$tableRows = '';
foreach($dbRows as $row) {
$number = $row['number'];
if ($number < 0) {
$tableRows .= '<tr><td style="color: red;">'.$number.'</td></tr>';
} else {
$tableRows .= '<tr><td>'.$number.'</td></tr>';
}
}
// $ tableRows现在将包含所有行数据作为HTML。
你可以用更少的代码完成这项工作,但我想说明这一点。