以下是我用来创建HTML电子邮件的PHP代码的一小段:
$tmpl = '<table border="0" width="100%";><tr><td>%title%</td></tr><tr><td>%text%</td></tr></table>';
$html = '<table border="0" width="100%";>';
$html .= '<td width="20%" style="padding:0;">';
if(isset($var)) {
$html .= 'Value: '.$object->val;
}
$html .= '</td>';
$html .= '</table>';
$tmpl = str_replace('%text%', $html, $tmpl);
$mail->setBody( $tmpl );
$mail->send();
有时,在电子邮件程序中查看时,HTML视图中的邮件会被破坏,因为在开放的TD元素中有空格字符。像这样:
< td width="20%" style="padding:0;">
这个空间角色来自哪里?
答案 0 :(得分:2)
与php mail()函数有同样的问题,我的html样式被看似随机的空格打破了。在邮件发送之前使用 wordwrap()来解决问题。
$message = wordwrap($message, 70);
mail("person@example.com","Some subject",$message);
答案 1 :(得分:0)
在这里看到这一行?
$html = '<table border="0" width="100%";>';
在width =“100%”之后,您不需要此符号 - &gt; ; 尝试删除它。
答案 2 :(得分:0)
$tmpl = '<table border="0" width="100%";><tr><td>%title%</td></tr><tr><td>%text%</td></tr></table>';
请注意;
border="0" width="100%";>
$html
以下行会覆盖之前构建的表格
$html = '</table>';
您需要将其更改为;
$html .= '</table>';
我建议echo
邮件正文,然后用w3验证。
<?php
$tmpl = '
<table border="0" width="100%">
<tr>
<td>%title%</td>
</tr><tr>
<td>%text%</td>
</tr>
</table>';
$html = '<table border="0" width="100%">';
$html .= '<td width="20%" style="padding:0;">';
if(isset($var)) {
$html .= 'Value: '.$object->val;
}
$html .= '</td>';
$html .= '</table>';
//Debug:
// echo $html;
$tmpl = str_replace('%text%', $html, $tmpl);
$mail->setBody( $tmpl );
$mail->send();