2016-06-03 2 views
0

Привет, может кто-нибудь помочь мне в отправке электронной почты с данными массива, которые я собрал? Я пытаюсь принести записи на БД с помощью массива, а затем я его по электронной почте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 protected]'; 
     $to = '[email protected]'; 


    $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(); 
    } 
} 

Спасибо за то, кто будет answer

+0

У вас нет '$ message', определенного в вашем коде из строки' $ mail-> Body = $ message; ' – Justinas

+0

Спасибо. Я уже успешно отправил электронное письмо. Но проблема в том, что я могу только отправить одна запись только. Что я хочу, я могу отправить по электронной почте все записи, которые я выберу из Db –

+0

, ваш контент такой же для всего электронного письма? – DsRaj

ответ

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); 
+0

Спасибо, что он уже работает –

+0

Добро пожаловать ... – Mani

0

Вам необходимо создать переменную (она уже есть в любом случае: $ message) и заполнить ее данными массива, используя функцию foreach для объединения строки. Например:

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

Uhm Я уже отправляю электронную почту, но могу только отправить только одну запись, хотя я определил ее в массиве. Как я могу отправить все записи по электронной почте? –

+0

Я отредактировал свой ответ. Это не так полно, как вам нужно, но попытайтесь найти результат запроса. –

1

Я не профессионал, но я могу дать вам предложение. Все в вашем коде в порядке, но Да, ваш код отправит только одну запись. Просто сделайте два изменения, ваш код начнет отправлять все записи, если массив.

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

в

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

второе изменение движение $dat = implode(' : ', $data); из вашего цикла.

вы можете отформатировать результат с помощью разных тегов html согласно вашему требованию, если вы хотите, чтобы в вашем письме был стиль.

надеюсь, что это поможет.

Смежные вопросы