0

我在发送格式正确的 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个链接......我最好在评论中发布链接,请检查,谢谢)

我怎么解决这个问题?

4

1 回答 1

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。

你可以用更少的代码做到这一点,但我想说明这一点。

于 2013-07-18T02:03:46.840 回答