通过PHP发送HTML邮件 - 奇怪的渲染

时间:2010-10-25 06:57:27

标签: php css html-table html-email margin

我有一张简单的表格:

<table cellpadding="0" cellspacing="0" style="width:600px">
  <tr>
    <td style="width:100px; padding:5px; border:1px solid #444">E-mail</td>
    <td style="width:500px; padding:5px; border:1px solid #444">ex@ex.com</td>
  </tr>
  <tr>
    <td style="width:100px; padding:5px; border:1px solid #444">Message</td>
    <td style="width:500px; padding:5px; border:1px solid #444">sometext</td>
  </tr>
</table>

当我测试它时,它看起来很好: alt text

当我通过PHP mail()函数发送它时,它看起来像这样: alt text

为什么会有那么多?

以防万一,我的mail()标题是:

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

3 个答案:

答案 0 :(得分:1)

表的宽度为600px。

细胞的宽度加起来如下:

第一个单元格:1px边框+ 5px填充+ 100px宽度+5px填充+ 1px边框= 112px 第二个单元1px边框+ 5px填充+ 500px宽度+5px填充+ 1px边框= 512px

宽度:600px宽度表中的624px。

这可能不是问题,但我敢打赌它没有帮助。

我建议你先纠正这个问题然后看看会发生什么。

答案 1 :(得分:1)

你有没有机会在mail()中的行之间插入\ n \ r?

答案 2 :(得分:0)

好吧,想通了 - 问题是我在发送之前做了nl2br($message)。 ($ message包含上述HTML代码)

但是,谢谢大家的参与!