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

时间:2016-04-05 06:55:41

标签: php email

我必须将此表作为电子邮件的一部分发送。我不确定它是如何工作的。我尝试了,但它没有将数据作为电子邮件发送,只是在电子邮件中发送forloop的语法。我从url获取查询字符串列表,并希望在表中添加这些值并发送电子邮件..

这是我的查询字符串

  

quote-next.php?Tables =桌子和椅子(超过4个)=椅子(超过   4)&​​amp; Fridge =冰箱和大电视=大型电视和椅子(少于4个)=椅子(少)   比4)& Beds =床

这是我用来创建表的代码

$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>';

有人能告诉我如何将其作为电子邮件发送?

2 个答案:

答案 0 :(得分:0)

分开关注点:

  • 而不是echo,开始构建字符串(使用常规显示进行测试):
  • 初始化:$ message =''
  • echo =&gt; $ message。='&lt;表&gt;'
  • 将字符串$ message作为消息发送(单独发送测试字符串)

答案 1 :(得分:0)

您不应回应将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);

?>