• 18-04-2018, 17:14:27
    #1
    İyi günler. PHP ile ilgili pek bilgim yok. Öğrenmeye çalışıyorum bu yüzden bir site yapıyorum. Sürekli özellikler ekliyorum ama internetten araştırıp bulamadığım bir yerde takıldım.

    class.phpmailer üzerinden mail göndermek istiyorum. Tek mail gönderince bir sıkıntı yok ama ben ebulten içindeki email sutununda bulunan tüm maillere mail göndermek istiyorum bunu nasıl yapabilirim


    Text üzerinden gönderilebiliyor
    Örnek şu
    <?php 
      require("system/class.phpmailer.php");
      $oku = fopen("mail.txt",'r'); 
      while(!feof($oku)){  
        $veri = fgets($oku); 
        $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPDebug = 1; // Hata ayıklama degisken: 1 = hata ve mesaj gösterir, 2 = sadece mesaj gösterir
    $mail->SMTPAuth = true; //SMTP dogrulama true
    $mail->SMTPSecure = 'ayar->mailhost'; // Baglanti tipi
    $mail->Host = "$ayar->mailhost"; // Mail sunucu adres
    $mail->Port =  "$ayar->port"; // Port numara
    $mail->IsHTML(true);
    $mail->SetLanguage("tr", "phpmailer/language");
    $mail->CharSet  ="utf-8";
    $mail->Username = "$ayar->mailka"; // Gönderen mail adresi)
    $mail->Password = "$ayar->mailsifre"; // Mail adresimizin sifresi
    $mail->SetFrom($ayar->mailgonder , $ayar->mailisim); // Mail adres ve isimn
    $mail->AddAddress($veri); // Mailin gönderilecegi alici adresi
    $mail->Subject = "Yeni Mesaj"; // Email konu baslik
    $mail->Body = "Yeni Bir Mesajınız Var <br>-------------------------------------<br>" .$veri. "<br>-------------------------------------<br>Lütfen bu mesaj cevap yazmayınız"; // Mailin içeriği
    if(!$mail->Send()){
    echo "Email Gönderim Hatasi: ".$mail->ErrorInfo;
    } else {
    echo 'Mesajınız Gönderildi';
    } 
      } 
      fclose($oku); 
    ?>
    Yukardaki örnektede görüldüğü gibi
     $oku = fopen("mail.txt",'r'); 
      while(!feof($oku)){  
        $veri = fgets($oku);
    bu kodla mail.txt de bulunan mailleri gönderebiliyorum bir sıkıntı yok. Bu txt yerine veritabanındaki ebulten içinde bulunan email stunun içindeki mailleri çekmek için nasıl bir fonksiyon yazmalıyım.
    Şimdiden teşekkürler.
  • 18-04-2018, 17:37:17
    #2
    Önce Veritabanı bağlantısı
    $apkdb = new PDO("mysql:host=localhost;dbname=apk","root","");
    $apkdb->exec("SET NAMES 'utf8'; SET CHARSET 'utf8'");
    Sonra çoğul veri ve while döngüsü aynı sizin örnekteki satır okuma gibi veritabanındaki her satır için1 tur
    
    $replies = $apkdb->prepare("SELECT * FROM maillist_tablosu_adi ");
        $replies->execute();
     
        while($row=$replies->fetch(PDO::FETCH_ASSOC)) {
    // burdan sonra $row["mail_adresi_sutunu"] şeklinde kullanarak bu aralıkta mail gönderimini yapacaksın
    
    }
  • 18-04-2018, 20:55:46
    #3
    Dediklerinizi yaptım ama mail gönderemedim.
  • 18-04-2018, 21:38:58
    #4
    Bağlantı bilgilerini, $row["mail_adresi_sutunu"]; kısmındaki sutunun herçek adını tablo adını dğiştirmeyi unutmayın saece örnek olarak verdim bunlar sizin tablonuz ve veritabanınıza göre değişir

    <?php
    $apkdb = new PDO("mysql:host=localhost;dbname=apk","root","");
    $apkdb->exec("SET NAMES 'utf8'; SET CHARSET 'utf8'");
    
    
      require("system/class.phpmailer.php");
      
     $replies = $apkdb->prepare("SELECT * FROM maillist_tablosu_adi ");
        $replies->execute();
    
      while($row=$replies->fetch(PDO::FETCH_ASSOC)) {
        $veri = $row["mail_adresi_sutunu"];
        $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPDebug = 1; // Hata ayıklama degisken: 1 = hata ve mesaj gösterir, 2 = sadece mesaj gösterir
    $mail->SMTPAuth = true; //SMTP dogrulama true
    $mail->SMTPSecure = 'ayar->mailhost'; // Baglanti tipi
    $mail->Host = "$ayar->mailhost"; // Mail sunucu adres
    $mail->Port =  "$ayar->port"; // Port numara
    $mail->IsHTML(true);
    $mail->SetLanguage("tr", "phpmailer/language");
    $mail->CharSet  ="utf-8";
    $mail->Username = "$ayar->mailka"; // Gönderen mail adresi)
    $mail->Password = "$ayar->mailsifre"; // Mail adresimizin sifresi
    $mail->SetFrom($ayar->mailgonder , $ayar->mailisim); // Mail adres ve isimn
    $mail->AddAddress($veri); // Mailin gönderilecegi alici adresi
    $mail->Subject = "Yeni Mesaj"; // Email konu baslik
    $mail->Body = "Yeni Bir Mesajınız Var <br>-------------------------------------<br>" .$veri. "<br>-------------------------------------<br>Lütfen bu mesaj cevap yazmayınız"; // Mailin içeriği
    if(!$mail->Send()){
    echo "Email Gönderim Hatasi: ".$mail->ErrorInfo;
    } else {
    echo 'Mesajınız Gönderildi';
    }
      }
      ?>