如何在php中将动态创建的表作为电子邮件发送


How to send dynamic created table as email in php

我必须将此表作为电子邮件的一部分发送。我不确定它将如何运作。我试过了,但它不是以电子邮件的形式发送数据,而是在电子邮件中发送forloop的语法。我正在从url中获取查询字符串的列表,并希望将这些值添加到表中并发送电子邮件。。

这是我的查询字符串

quote-next.php?Tables=表格;椅子(超过4个)=椅子(超过4) &冰箱=冰箱&大型电视=大型电视&椅子(少于4个)=椅子(少于大于4)&床=床

这是我用来创建表的代码

$arr = $_SERVER['QUERY_STRING'];
    $pieces = explode("&", $arr);
     print_r(str_replace('%20', ' ', $pieces[1]));
     echo '<table>';
                    for($i = 0; $i<count($pieces); $i++)
                    { 
                     echo '<tr><td>'.str_replace('%20', ' ', $pieces[$i]).'</tr></td>'; 
                    }
                    echo '</table>';

有人能告诉我如何把它作为电子邮件发送吗?

您不应该回显以将HTML部分作为电子邮件发送。实际上,您必须为HTML动态设置一个变量,然后将其传递给php-mail()函数。

<?php    
    $arr = $_SERVER['QUERY_STRING'];
    $pieces = explode("&", $arr);
    $email_body = "<table>";
    for($i = 0; $i<count($pieces); $i++){ 
        $email_body .= "<tr>";
        $email_body .= "<td>Your Lable</td>";
        /*
            Or if you have Label in $pieces array.
            $email_body .= "<td>$pieces[$i]</td>";
        */
        $email_body .= "<td>".str_replace("%20", " ", $pieces[$i])."</td>";
        $email_body .= "</tr>";
    }
    $email_body .= "</table>";
    mail('caffeinated@example.com', 'My Subject', $email_body);
?>

分离关注点:

  • 代替echo,启动字符串构建(使用常规显示进行测试):
  • initialize:$message=''
  • echo=>$message.='<表>'
  • 将字符串$message作为消息发送(单独发送测试字符串)