S.M*_*son 6 html php phpmailer
我正在使用PHPMailer并在for循环中使用这行代码将HTML表格的行添加到电子邮件正文中.(php的完整pastebin在这里:http://pastebin.com/iujp27hU)
$body .= "<tr><td style='". $rush_part_style . "'>" . $row[0]
. "</td> <td align='center' style='" . $rush_part_style . "'>" . $quantity_to_order
. "</td> <td>" . $row[2] . "</td></tr>";
Run Code Online (Sandbox Code Playgroud)
电子邮件通常很好,但每隔一段时间,td标签的一个有角度的括号被编码到其HTML实体.

当我在Outlook中查看源代码时,它的外观如下:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">h3, p, table td {font-family:arial;}</style>
<table><tr><td><u>SD Part Number</u></td><td><u>Quantity</u></td><td><u>UOM</u>/td></tr>
- - some rows removed for brevity - -
<tr><td style="">P1400642-00048-C</td><td align="center" style="">26</td><td>EA</td></tr>
<tr><td style="">P1400642-00046-C</td>< td align='center' style=''>20</td> <td>EA</td></tr>
<tr><td style="">P1400642-00106-C</td><td align="center" style="">25</td><td>EA</td></tr>
<tr><td style="">P1400642-00036-C</td><td align="center" style="">67</td><td>EA</td></tr>
...
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它随机地将其中一个编码< >到他们的角色实体中.这个问题以前发生过,但我可以发送100多封电子邮件而不会发生.部件号与是否出现无关.
我该如何解决这个问题?
- 其他信息编辑 -
测试非常大的202行的顺序会在发送时产生这些格式错误.这根本没有属性,只有纯HTML.PHPMailer破坏了它Send().

小智 0
输出有,< td而你的 PHP 有<td. 这很奇怪,因为输出突然出现了一个空无一物的空间。
要排除故障,您可以在运行脚本时将$body和输出$order_mail->Body到屏幕或文件。查看转义 HTML 是在什么时候引入的。如果这不能为您提供更多信息,请尝试不使用 PHP 变量,并自行填写一些随机内容。
其他想法:
style=''- 您可以尝试重写代码,以便省略空属性(或者通过添加一些虚拟文本(例如,对于 style: text-align:left;)来使属性永远不会为空)。"而不是'),PHPMailer 可能会出现问题。一般来说,调试时:拆分代码并尽可能多地输出调试信息,以确定问题到底出在哪里。是在构建 HTML 时,还是在您将其加载到 中时由 PHPMailer 完成$order_mail->Body?或者当你调用时它会发生Send()(在这种情况下你看不到它在 PHP 中发生)?