【问题标题】:Send HTML table through PHPmailer通过 PHPmailer 发送 HTML 表格
【发布时间】:2014-07-23 22:59:52
【问题描述】:

我正在尝试使用 PHPmailer 发送动态 HTML 表格,但我不知道如何,是否可以获取所有表格的变量?或者类似的东西?

这是我的代码:

require("inc/class.phpmailer.php");
$mail = new PHPMailer();
$mail->CharSet = 'UTF-8';
$mail->From     = ('compras.co@kantarworldpanel.com');
$mail->FromName = ('Compras CO (KWBTA)');
$mail->AddAddress($_POST['providermail']);
$mail->AddCC("camilo.uribe@kantarworldpanel.com.co");    
$mail->IsHTML(true);        


 //IF SUBMIT, SEND MAIL 
 if (isset ($_POST['send_approve'])) {
$mail->Subject = "Kantar Worldpanel - Solicitud de Cotización";
$contenido =  'Kantar Worldpanel  Perú S.A. Sucursal Colombia desea solicitar a ustedes la cotización correspondiente a los siguientes Items:<br>';

////////////////////////////////////////////
$contenido .= ' The Table should be here;
///////////////////////////////////////////

$mail->Body    = $contenido;
$mail->Send();
header ("Location: RequestsPA.php");
}

这是表格代码:

<?php 
$sqlStr = "SELECT items.CA_id, items.item_id, items.item_Cant, items.CECO_cod, items.item_desc, items.item_enduser
FROM items where CA_id = ".$CA_id;
$sqlStrAux = "SELECT count(*) as total FROM items";

$aux = Mysql_Fetch_Assoc(mysql_query($sqlStrAux));
$query = mysql_query($sqlStr);  

if($aux['total']>0){

    echo "</br></br>";
    echo "<div class='datagrid'>";
    echo "\t<table class=\"tablesorter\">\n";
    echo "<thead>";
    echo "<tr>
        <th>Item</th>
        <th>Cantidad</th>
        <th>CECO</th>
        <th>Descripción de solicitud</th>
        <th>Usuario final</th>          
      </tr>\n";
    echo "</thead>";      
        echo "<tbody>";
        $r=0;
        while($row = mysql_fetch_assoc($query)){
    echo "\t\t<tr class=\"row$r\">
            <td>".htmlentities($row['item_id'])."</td>
            <td>".htmlentities($row['item_Cant'])."</td>
            <td>".htmlentities($row['CECO_cod'])."</td>
            <td>".$row['item_desc']."</td>
            <td>".$row['item_enduser']."</td>
                </tr>\n";
      if($r%2==0)++$r;else--$r;
    }
    echo "</tbody>";                  
    echo "\t</table>\n";
    }
    echo "</div>";
?>

希望你能理解我,谢谢你的帮助。

【问题讨论】:

  • 您要发送表格或表格内的变量?

标签: php mysql phpmailer


【解决方案1】:

虽然您可以使用 echo 输出表格并使用 output buffering 捕获它,但通常将消息正文组装成字符串更容易,如下所示:

$contenido = '';
if($aux['total']>0){

    $contenido .= "</br></br>";
    $contenido .= "<div class='datagrid'>";
    $contenido .= "\t<table class=\"tablesorter\">\n";
    $contenido .= "<thead>";
    ...

然后只需使用该字符串作为您的消息正文。如果您使用与电子邮件内容相同的代码生成网页输出,则将该脚本转换为可以从任一位置调用的函数。

【讨论】:

    【解决方案2】:
    ob_start();
    
    echo 'all my lines of code';
    
    $contenido = ob_get_clean();
    

    上面将捕获第一行和最后一行之间的所有内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      • 2013-01-20
      • 1970-01-01
      • 2021-03-23
      • 2017-09-28
      相关资源
      最近更新 更多