簡體   English   中英

如何使用php mailer以電子郵件形式發送數據庫數據?

[英]how to send the database data as email using php mailer?

我正在嘗試使用php mailer將數據庫數據作為郵件發送。 電子郵件發送正常,但是在消息中,我僅獲得數據庫中的最新數據。 我該怎么做才能發送數據庫中的所有數據。

我嘗試了以下代碼:

<?php
    require 'PHPMailer/PHPMailerAutoload.php';
function Selectdata($table,$condition)
{
    global $conn,$result,$selectarray,$rowcount;
    $sql="SELECT * from ".$table." ".$condition." ";
    $result=$conn->query($sql);
    $rowcount=$result->num_rows;
    $selectarray = array();
    while($row=$result->fetch_assoc())
    {   
        $selectarray[]=$row;
    }
    return $result;
}

// function for join
function outerjoin($query)
{
    global $conn,$result,$selectoutter,$rowcount;
    $sql="".$query."";
    $result=$conn->query($sql);
    $rowcount=$result->num_rows;
    $selectoutter = array();
    while($row=$result->fetch_assoc())
    {
        $selectoutter[]=$row;
    }
}

    $mail = new PHPMailer;
    $mail->isSMTP();                                     
    $mail->Host = 'smtp.gmail.com';  
    $mail->SMTPAuth = true;                               
    $mail->Username = 'kumaresh.arun93@gmail.com';            
    $mail->Password = 'xxxxxxxxxxxxx';                          
    $mail->SMTPSecure = 'tls';                            
    $mail->Port = 587;                                    
    $mail->SMTPDebug = 1;                                 
    $mail->setFrom('kumaresh.arun93@gmail.com', 'Arun');
    $mail->addAddress('kumaresh.boss@gmail.com', 'kumaresh');    

    $mail->IsHTML (true);
    $mail->Subject = 'Messages From Forum';
    $table="mdl_course";
    $condition="";
    $selectcourse=Selectdata($condition,$table);

    foreach ($selectarray as $cid) {

        $query="SELECT a.name as forumname,b.name as discussion,c.message,c.userid,d.firstname,d.email,d.phone1 from mdl_forum as a inner join mdl_forum_discussions b on a.id=b.forum inner join mdl_forum_posts c on b.id=c.discussion inner join mdl_user d on c.userid=d.id where a.course=".$cid['id']." and a.category=1 and from_unixtime(c.modified,'%Y-%m-%d')=CURDATE()";
        $selectmsg=outerjoin($query);

        foreach ($selectoutter as $fmsg) {
            $mail->Body =  '<p><b>Forum Name:</b>&nbsp;&nbsp;&nbsp;'.$fmsg['forumname'].'</p>'; 
            $mail->Body.= '<p><b>Discussion Name:</b>&nbsp;&nbsp;&nbsp;'.$fmsg['discussion'].'</p>';    
            $mail->Body.= '<p><b>Message:</b>&nbsp;&nbsp;&nbsp;'.$fmsg['message'].'</p>';   
        }
    }

    $send = $mail->Send();
    if (!$send) {
        echo 'Message could not be sent.';
    // echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
        echo 'Message has been sent';
    }
?>

更新了foreach循環

$body = '';    
foreach($selectarray as $cid)
{
    $query = "SELECT a.name as forumname,b.name as discussion,c.message,c.userid,d.firstname,d.email,d.phone1 from mdl_forum as a inner join mdl_forum_discussions b on a.id=b.forum inner join mdl_forum_posts c on b.id=c.discussion inner join mdl_user d on c.userid=d.id where a.course=".$cid['id']." and a.category=1 and from_unixtime(c.modified,'%Y-%m-%d')=CURDATE()";
    $selectmsg = outerjoin($query);
    foreach($selectoutter as $fmsg)
    {
        $body .=  '<p><b>Forum Name:</b>&nbsp;&nbsp;&nbsp;'.$fmsg['forumname'].'</p>';   
        $body .= '<p><b>Discussion Name:</b>&nbsp;&nbsp;&nbsp;'.$fmsg['discussion'].'</p>'; 
        $body .= '<p><b>Message:</b>&nbsp;&nbsp;&nbsp;'.$fmsg['message'].'</p>';    
    }

}

$mail->Body = $body;

對於查詢結果的每一行,您都將截斷郵件正文:

$mail->Body=  '<p><b>Forum [...]

在循環之前設置$mail->Body ,然后使用.=添加行信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM