• 29-12-2020, 11:11:51
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba yarım kaldı devamını getiremedim yardımcı olabilir misiniz.?

    Veritabanından gelen verileri seçerek kayıtlı mail adreslerine tek tek veya toplu PHPMAILLER ile mail atmak istiyorum. checkbox ile tümünü seçip veya tek tek seçip atmak istiyorum.

    id, isim, soyisim ve mail adresi

    (1, Ahmet, Kalaycıoğlu, ahmet@gmail.com)
    (2, Ali, Bayrak, ali@gmail.com)
    (3, Sema, Yılmaz, sema@gmail.com)


    anasayfa.php
    <?php
    $baglanti = new mysqli("localhost", "user", "sifre", "veritabani_adi");
    if ($baglanti->connect_errno > 0) {  
    die("<b>Bağlantı Hatası:</b> " . 
    $baglanti->connect_error);}//echo "MySQL bağlantısı başarıyla gerçekleştirildi.";?>
    
    <form name="formName" action="mail_gonder.php">  
     <table>        
    <thead>          
     <tr>                
    <th><input type="checkbox" name="all" value="" onclick="selectAll('formName')" /></th>                
    <th>AD</th>      
    <th>SOYAD</th>                
    <th>MAIL</th>            
    </tr>        
    </thead>        
    <?php$sorgu = $baglanti->query("SELECT * FROM kayitlar");
    while ($cikti = $sorgu->fetch_array()) {?>        
    <tbody>            
    <tr>          
     <td><input type="checkbox" name="sec" value="<?php echo $cikti[0] ?>" /></td>            
    <td><input type="text" name="isim[]" value="<?php echo $cikti[1] ?>"></td>            
    <td><input type="text" name="isim[]" value="<?php echo $cikti[2] ?>"></td>            
    <td><input type="text" name="isim[]" value="<?php echo $cikti[3] ?>"></td>            
    </tr>        
    </tbody>        
    <?php } ?>    
    </table> <br>    
    <input type="submit" value="SEND"></form>
    
    
    <script type="text/javascript">function selectAll(formName) {    
    var selectName = document.formName.sec;    
    var checkNumber = selectName.length;
        if (document.formName.all.checked == false) {        
    for (i = 0; i < checkNumber; i++) {            
    selectName[i].checked = false;      
     }    } else {        
    for (i = 0; i < checkNumber; i++) {            
    selectName[i].checked = true;        }    }}
    </script>
    mail_gonder.php
    $gelen=$_POST['isim'];
    foreach($gelen as $deger){    [
    echo $deger."<br>";
    }
    
    print_r($_POST)
    
     $id = addslashes(strip_tags(@$_GET['id']));
    $adi = addslashes(strip_tags(@@$_GET['ad']));
    $soyadi = addslashes(strip_tags(@@$_GET['soyad']));
    $mail_adresi = addslashes(strip_tags(@@$_GET['mail']));
    
     require("class.phpmailer.php");
    
    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPDebug = 1;
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = 'ssl';
    $mail->Host = "smtp.gmail.com";
    $mail->Port = 465; $mail->IsHTML(true);
    $mail->SetLanguage("tr", "phpmailer/language");
    $mail->CharSet  ="utf-8";
    $mail->Username = "gonderen@gmail.com";
    $mail->Password = "gonderen_sifre";
    $mail->SetFrom("gonderen@gmail.com", "bilgileriniz");
    $mail->AddAddress("ahmet@gmail.com");
    $mail->Subject = "Kayıtlı mail adresiniz.";
    $mail->Body = "Sayın, <b>$adi $soyadi</b>
    <br><br>Kayıtlı mail adresiniz $mail_adresi ";
    if(!$mail->Send()){
    echo "no";    
    } else {
    echo "yes";    
    }}?>
  • 29-12-2020, 11:37:21
    #2
    Merhabalar,

    ilk öncelikle seçilen checkbox'ın değerini alıyoruz
    $("input[name=select]:checked").val();
    veritabanı kısmında ise eski tip sistem kullanmak yerine oop mantığı kullanarak kısa kod ile daha gelişmiş sonuç elde etmek mümkün, bunun için ise aşağıdaki kütüphaneyi ve kodları kullanacağız:
    https://github.com/ThingEngineer/PHP...Database-Class
    foreach($dbh->get("kayitlar") as $recordsRow){ echo '<input type="text" name="isim" value="'.$recordsRow['email'].'">' };
    Javascript ile array dizimizi post ediyoruz:
    var emails = [];
    /*
    * Burada Push atıyoruz, gidecek email adreslerini ekliyoruz.
    */
    emails.push($("input[name=select]:checked").val());
    Ajax kodlarımızı yazıyoruz:
    $.ajax({
    type: "POST",
    data: {emails:emails},
    url: "index.php",
    success: function(response){
    $('.answer').html(msg);
    }else{
    alert("hata oluştu!");
    });
    En son olarak mail gönderimini yazıyoruz:
    require_once('config.php');
    require_once('class.phpmailer.php');
    $mail = new PHPMailer();
    $mail->Host = $config["mail"]["type"].".".$config['mail']['site'];
    $mail->SMTPAuth = true;
    $mail->Username = $config['mail']['sender'];
    $mail->Password = $config['mail']['password'];
    $mail->Port = 587;
    $mail->IsSMTP();
    $mail->IsHTML(true);
    /*
    [Change "$user_email" to your own code]
    [Mail to send addresses]
    [-]For example:
    [-+-] Print in a loop (Foreach / For / While)
    
    
    [code]
    $mail->AddAddress($user_email);
    [/code]
    */
    $mail->AddAddress($user_email); //Change
    $mail->From = $config['mail']['sender'];
    /*
    [Email Title]
    */
    $mail->FromName = "Account Activation";
    $mail->CharSet = $config['mail']['charset'];
    /*
    [Subject title]
    Ex: Project Name
    */
    $mail->Subject = "Github";
    /*
    [Your message template]
    */
    $mailContent = 'Hello world';
    $mail->MsgHTML($mailContent);
    if($mail->Send()) {
    /*
    [Success Then]
    */
        echo "success";
    }else{
    /*
    [Failed Then]
    */
        echo $mail->ErrorInfo."<br>";
        echo "failed";
    }
    Class kütüphanesi:
    class.phpmailer.php - https://controlc.com/b22982eb
    class.smtp.php - https://controlc.com/30b17e0a

    -Osman / Senior PHP Back-End Developer
  • 29-12-2020, 11:59:16
    #3
    benim bu kadar php bilgim yok maalesef dosya bazlı olarak verebilir misiniz. teşekkürler
  • 29-12-2020, 17:12:02
    #4
    istediğim sistemi yabancı kaynaklarda buldum faydalanmanız dileğiyle

    kaynak: https://www.webslesson.info/2017/10/...php-using.html
    dosya: https://drive.google.com/file/d/0B_s...V6NnVhMEk/view