• 07-04-2019, 00:21:53
    #1
    Arkadaşlar data kısmındaki döngüyü yapamadım yardımcı olursanız memnun olurum. üstte verileri yazdırıyorum fakat mail gönderirken sadece bir kişiye mail gidiyor.

    $data = [
        [
            "id" => "$id",
            "name" => "$mus_adi",
            "email" => "$mus_email"
       ]
    
    ];
    sorun bu kısımda diye düşünüyorum

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
    	</head>
    <body>	
    		<?php
    include "../baglanti.php"; 
    
    $tarih = date('Y-m-d');
    
    $teknik = mysql_query("select * from bakiye where yenileme_tarih='$tarih'");				
    					while ($oku = mysql_fetch_array($teknik))
    {	
    					$id						= $oku['id'];
    					$mus_id					= $oku['mus_id'];
    					$mus_adi				= $oku['mus_adi'];
    					$yenileme_tarih			= $oku['yenileme_tarih'];
    					$mus_email				= $oku['mus_email'];
    
    
    ?>
    <?php echo $yenileme_tarih; ?> - <?php echo $mus_adi; ?> - <?php echo $mus_email; ?></br>
    
    <?php
    include 'class.phpmailer.php';
    $mail = new PHPMailer();
    $mail->isSMTP();
    $mail->SMTPKeepAlive = true;
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = 'tls'; //ssl
    $mail->Port = 587; //25 , 465 , 587
    $mail->Host = "smtp.gmail.com";
    $mail->AddReplyTo('x@gmail.com', 'başlık');
    $mail->Username = "x@gmail.com";
    $mail->Password = "x";
    $mail->SetFrom($mail->Username, 'Başlık');
    $data = [
        [
            "id" => "$id",
            "name" => "$mus_adi",
            "email" => "$mus_email"
       ]
    
    ]; 
    
    foreach ($data as $d){
        $mail->addAddress($d["email"]);
        $body = file_get_contents('./mail-template.html');
        $gelen = ["username","userID"];
        $giden = [$d["name"],$d["id"]];
        $body = str_replace($gelen,$giden,$body);
        $mail->isHTML(true);
        $mail->Subject = "Sayın ".$d["name"];
        $mail->Body = $body;
        if ($mail->send())
            echo "Mail gonderimi basarili.</br>";
        else
            echo "Malesef olmadi. HATA : ".$mail->ErrorInfo;
        $mail->clearAddresses();
        $mail->clearAttachments();
    }
    }
    
    ?>
    </body>
    </html>
  • 07-04-2019, 00:27:10
    #2
    Data degil $data[0] donguye girecek




    Id email vb onlar ise array olarak girecek mysqlde
  • 07-04-2019, 00:44:45
    #3
    Onur89TR adlı üyeden alıntı: mesajı görüntüle
    Data degil $data[0] donguye girecek




    Id email vb onlar ise array olarak girecek mysqlde
    söylediğinizi yaptım fakat o zaman hiç bir veriyi alamadı
    en az bir alıcı yazmalısınız hatası veriyor $data içeriğindeki id name ve email verilerini çekemiyor sanırım?
  • 07-04-2019, 00:48:48
    #4
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
    <?php
    include "../baglanti.php";
    $tarih = date('Y-m-d');
    $data= array();
    $data1 = array();
    $teknik = mysql_query("select * from bakiye where yenileme_tarih='$tarih'");
    while ($oku = mysql_fetch_array($teknik))
    {
    $id= $oku['id'];
    $mus_id= $oku['mus_id'];
    $mus_adi= $oku['mus_adi'];
    $yenileme_tarih= $oku['yenileme_tarih'];
    $mus_email= $oku['mus_email'];
    
    $data1=array(
            "id" => "$id",
            "name" => "$mus_adi",
            "email" => "$mus_email"
    );
    array_push($data,data1);
    ?>
    <?php echo $yenileme_tarih; ?> - <?php echo $mus_adi; ?> - <?php echo $mus_email; ?></br>
    
    <?php
    include 'class.phpmailer.php';
    $mail = new PHPMailer();
    $mail->isSMTP();
    $mail->SMTPKeepAlive = true;
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = 'tls'; //ssl
    $mail->Port = 587; //25 , 465 , 587
    $mail->Host = "smtp.gmail.com";
    $mail->AddReplyTo('x@gmail.com', 'başlık');
    $mail->Username = "x@gmail.com";
    $mail->Password = "x";
    $mail->SetFrom($mail->Username, 'Başlık');
    
    
    foreach ($data as $d){
        $mail->addAddress($d["email"]);
        $body = file_get_contents('./mail-template.html');
        $gelen = ["username","userID"];
        $giden = [$d["name"],$d["id"]];
        $body = str_replace($gelen,$giden,$body);
        $mail->isHTML(true);
        $mail->Subject = "Sayın ".$d["name"];
        $mail->Body = $body;
        if ($mail->send())
            echo "Mail gonderimi basarili.</br>";
        else
            echo "Malesef olmadi. HATA : ".$mail->ErrorInfo;
        $mail->clearAddresses();
        $mail->clearAttachments();
    }
    }
    
    ?>
    </body>
    </html>
    Bu olmazsa data satırını şöyle değiştir:

    $data1=array(
    "id" => "$id",
    "name" => "$mus_adi",
    "email" => "$mus_email"
    );
    array_push($data[0],data1);
  • 07-04-2019, 00:54:23
    #5
    Sayfa görüntülenemiyor hatası veriyor hcm döngüde bir sorun var sanırım.
  • 07-04-2019, 01:01:02
    #6
    Oldu mu hocam?
  • 07-04-2019, 01:11:30
    #7
    siyahincim adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar data kısmındaki döngüyü yapamadım yardımcı olursanız memnun olurum. üstte verileri yazdırıyorum fakat mail gönderirken sadece bir kişiye mail gidiyor.

    $data = [
        [
            "id" => "$id",
            "name" => "$mus_adi",
            "email" => "$mus_email"
       ]
    
    ];
    sorun bu kısımda diye düşünüyorum

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        </head>
    <body>    
            <?php
    include "../baglanti.php";
    
    $tarih = date('Y-m-d');
    
    $teknik = mysql_query("select * from bakiye where yenileme_tarih='$tarih'");                
                        while ($oku = mysql_fetch_array($teknik))
    {    
                        $id                        = $oku['id'];
                        $mus_id                    = $oku['mus_id'];
                        $mus_adi                = $oku['mus_adi'];
                        $yenileme_tarih            = $oku['yenileme_tarih'];
                        $mus_email                = $oku['mus_email'];
    
    
    ?>
    <?php echo $yenileme_tarih; ?> - <?php echo $mus_adi; ?> - <?php echo $mus_email; ?></br>
    
    <?php
    include 'class.phpmailer.php';
    $mail = new PHPMailer();
    $mail->isSMTP();
    $mail->SMTPKeepAlive = true;
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = 'tls'; //ssl
    $mail->Port = 587; //25 , 465 , 587
    $mail->Host = "smtp.gmail.com";
    $mail->AddReplyTo('x@gmail.com', 'başlık');
    $mail->Username = "x@gmail.com";
    $mail->Password = "x";
    $mail->SetFrom($mail->Username, 'Başlık');
    $data = [
        [
            "id" => "$id",
            "name" => "$mus_adi",
            "email" => "$mus_email"
       ]
    
    ];
    
    foreach ($data as $d){
        $mail->addAddress($d["email"]);
        $body = file_get_contents('./mail-template.html');
        $gelen = ["username","userID"];
        $giden = [$d["name"],$d["id"]];
        $body = str_replace($gelen,$giden,$body);
        $mail->isHTML(true);
        $mail->Subject = "Sayın ".$d["name"];
        $mail->Body = $body;
        if ($mail->send())
            echo "Mail gonderimi basarili.</br>";
        else
            echo "Malesef olmadi. HATA : ".$mail->ErrorInfo;
        $mail->clearAddresses();
        $mail->clearAttachments();
    }
    }
    
    ?>
    </body>
    </html>
    sondaki foreach döngünüzünn sonunda $datayı sıfırlamayı denermisiniz
  • 07-04-2019, 01:19:51
    #8
    Kodu yeniledim. PHP sürümü kaç bu arada?
  • 07-04-2019, 01:21:32
    #9
    Onur89TR adlı üyeden alıntı: mesajı görüntüle
    Oldu mu hocam?
    sayfa görüntülenemiyor hatası devam ediyor hocam malesef yine olmadı.

    kodu yenilediğinizi gördüm. Php sürüm PHP 5.6 (ea-php56)