PHPMailer在邮件正文中有多个html表

时间:2015-04-08 16:37:44

标签: php html email phpmailer

我发送的邮件包含的数据 Text Content 1HTML Table 1Text Content 2HTML Table 2等等 注意:HTML表格中的行数和列数是动态的 我的PHPMailer:

$mail = new PHPMailer ();
$mail->isSMTP (); 
$mail->Host = '*******.net';
$mail->SMTPAuth = true
$mail->Username = '*****@*****.net'; 
$mail->Password = '*****';
$mail->Port = ****;
$mail->setFrom ( '********', '*********' );
$mail->addAddress ($to , $name ); 
$mail->WordWrap = 50; 
$mail->isHTML ( true );
$mail->Subject = $subject;
$_body = $body;// contains mutiple HTML tables
/*
** $body = "<div>Content1<table align='left'><tr>Table1 content<td></td></tr></table></div><br />";
** $body .= "<div>Content2<table align='left'><tr><td>Table2 content</td></tr></table></div>";
*/
$send = $mail->send ();
$mail->SmtpClose ();

问题:在Content2之后(新的/下一行),我无法将Table1放在正确的位置 我想要类似

`content1`
`table1`
`content2`
`table2`

在邮件中发送

`content1`
`table1` `content2`
`table2`

我尝试使用<br \>。由于表格中的行数是动态的,我们可以使用行计数器来维护它,方法是在<br />中为行数添加table1的数量(即,如果我有5行)表1中的行,我将追加5 <br />&#39; s)我想知道是否有更好的解决方案

解决方案:
以前,我使用<table align='left'>,它会<table>间接影响float:left。我删除<br />

后,我的align代码正常运作

PIC1
Pic1
PIC2
Pic2

1 个答案:

答案 0 :(得分:0)

由于这是HTML电子邮件,只需使用嵌套表。这是丑陋和无意义的,但它是电子邮件编码的标准方式,因为缺乏对盒子模型的支持。

<table>
  <tr>
    <td>
      ... DESCRIPTION 1 CONTENT ...
    </td>
  </tr>
  <tr>
    <td>
      <table>
        <tr>
          <td>... TABLE 1 CONTENT ...</td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td>
      ... DESCRIPTION 2 CONTENT ...
    </td>
  </tr>
  <tr>
    <td>
      <table>
        <tr>
          <td>... TABLE 2 CONTENT ...</td>
        </tr>
      </table>
    </td>
  </tr>
</table>

Mailchimp拥有大量免费模板,可以让您在布局方面取得进展。