【问题标题】:Sending HTML mail through PHP - strange rendering通过 PHP 发送 HTML 邮件 - 奇怪的渲染
【发布时间】:2011-04-30 01:43:00
【问题描述】:

我有一张简单的桌子:

<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>

当我测试它时,它看起来不错:

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

为什么会有那个边距?

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

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

【问题讨论】:

  • 如果您使用另一个邮件客户端查看您的邮件,您是否也有同样的问题?你用哪一个?
  • 我在 Gmail(屏幕截图)和另一个客户端中测试了它 - 结果相同
  • 我在 Gmail 和 Outlook Express 中检查了上述代码。但无法复制相同的内容。

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


【解决方案1】:

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

但感谢大家的参与!

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      您的表格宽度为 600 像素。

      单元格的宽度加起来如下:

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

      总宽度:在 600 像素宽度的表格中为 624 像素。

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

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

      【讨论】:

        猜你喜欢
        • 2016-05-11
        • 1970-01-01
        • 2012-08-25
        • 1970-01-01
        • 1970-01-01
        • 2021-05-27
        • 2012-08-25
        • 2012-06-29
        • 1970-01-01
        相关资源
        最近更新 更多