PHP在电子邮件中发送数组记录

时间:2016-06-03 05:39:12

标签: php

嗨,有人可以帮我发送一封包含我收集的阵列数据的电子邮件吗? 我正在尝试使用数组获取数据库中的记录,然后我将通过电子邮件发送

这是我的代码: 我会先得到我想要的记录:

$queclient_credit = "SELECT company, credits FROM clients WHERE credits <= 20 and company !='' ORDER BY credits ASC ";
    $getque = mssql_query($queclient_credit) or die();
    while ($rowclient_credit=arrayfetch($getque)){
            $rowcompany = $rowclient_credit['company'];
            $rowcredits = $rowclient_credit['credits'];
Then put it on array:
        $data = array(
                'company'=>$rowcompany,
                'credits'=>$rowcredits
        );


   $dat = implode(' : ', $data);
    }
        if($rowcredits<= 20){
        $from='email@gmail.com';
        $to = 'email@gmail.com';


    $gmailPass = 'password';
    require('phpmailer/5.1/class.phpmailer.php');
    $mail = new PHPMailer();
    $mail->IsSMTP();

    $mail->SMTPAuth = true;

    $mail->SMTPSecure = "ssl";

    $mail->Host = 'smtp.gmail.com';

    $mail->Port = '465';

    $mail->Username = $from;

    $mail->Password = $gmailPass;
    $mail->From = $from;
    $mail->FromName = $from;
    $mail->AddReplyTo($from, $from);
    $mail->Subject = 'Credit System ';
    $mail->Body = $message;
    $mail->MsgHTML('<b><p>'.$dat.' credits<p><b>');
    $mail->IsHTML(true);
    $mail->AddAddress($to, $to);
if(!$mail->Send()){
     // $mail->ErrorInfo;
}else{
    echo 'Message Successfully Sent!';
    $mail->ClearAddresses();
    $mail->ClearAttachments();
    }
}

感谢您的回答

3 个答案:

答案 0 :(得分:1)

我不是专业人士,但我可以给你建议。代码中的所有内容都可以,但是,您的代码只会发送一条记录,只需进行两次更改,您的代码将开始发送所有记录(如果是数组)。

$data = array(
            'company'=>$rowcompany,
            'credits'=>$rowcredits
    );

$data[] = array(
            'company'=>$rowcompany,
            'credits'=>$rowcredits
    );

第二个变化是 将$dat = implode(' : ', $data);移出你的while循环。

如果您想在电子邮件中添加一些样式,可以根据需要使用不同的html标记格式化结果。

希望这会有所帮助。

答案 1 :(得分:0)

你必须创建一个变量(你已经拥有它了:$ message),并使用foreach函数填充你的数组数据以连接字符串。 例如:

$message = "";
foreach($getque as $g)
{
       $message .= "</br>".$g["table_column_name"];
}
...

答案 2 :(得分:0)

如果您希望通过邮件表格显示所有详细信息,请使用

  $data="<table><tr>
                <th></th>
                <th></th>
                </tr>";

  while ($rowclient_credit=arrayfetch($getque)){
            $rowcompany = $rowclient_credit['company'];
            $rowcredits = $rowclient_credit['credits'];
            $data.="<tr> <td>".$rowcompany."</td>
                         <td>".$rowcredits."</td>
                    </tr>";
    }

  $data.="</table>";


    $mail->MsgHTML($data);