• 06-10-2016, 23:45:10
    #1
    normalde mail fonksiyonu ile sorunsuz çalışan bir dosya idi. fonksiyon hosting sağlayıcı tarafından güvenlik gerekçesiyle kapatıldı mecburen phpmailer'e geçiş yaptım.

    Üyelerime Toplu Mail göndereceğim zaman 1 üyeye sorunsuz gönderim yaparken, birden fazla üye olunca sadece 1. üyeye mail gidiyor. Nasıl çözerim bu sorunu? Şimdiden teşekkürler


    					
    $uyeler = $DB->ALL("uyeler","*","where durum='1' $where order by id desc",0);	
    				
    foreach($uyeler["data"] as $uye)					
    {		
    toplumail($uye["email"],$_POST["konu"],$_POST["mail"]);	
    }	
    				
    $sonuc = true;					
    echo sonuc($sonuc);
    
    }
    function toplumail($gonder,$konu,$mesaj)
    {
    require("class.phpmailer.php");
    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPDebug = 1; // hata ayiklama: 1 = hata ve mesaj, 2 = sadece mesaj
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = 'tls'; // Güvenli baglanti icin ssl normal baglanti icin tls
    $mail->Host = "mail.xxxx.com"; // Mail sunucusuna ismi
    $mail->Port = 587; // Gucenli baglanti icin 465 Normal baglanti icin 587
    $mail->IsHTML(true);
    $mail->SetLanguage("tr", "phpmailer/language");
    $mail->CharSet  ="utf-8";
    $mail->Username = "no-reply@xxxx.com"; // Mail adresimizin kullanicı adi
    $mail->Password = "!U+T5Q"; // Mail adresimizin sifresi
    $mail->SetFrom("no-reply@xxxx.com", "xxxx.com"); // Mail attigimizda gorulecek ismimiz
    $mail->AddAddress($gonder); // Maili gonderecegimiz kisi yani alici
    $mail->Subject = "xxxx.com - $konu"; // Konu basligi
    $mail->Body = "$mesaj"; // Mailin icerigi
    $mail->Send();
    }
  • 06-10-2016, 23:59:51
    #2
    $uyeler = $DB->ALL("uyeler","*","where durum='1' $where order by id desc",0);
        require("class.phpmailer.php");
        $mail = new PHPMailer();
        $mail->IsSMTP();
        $mail->SMTPDebug = 1; // hata ayiklama: 1 = hata ve mesaj, 2 = sadece mesaj
        $mail->SMTPAuth = true;
        $mail->SMTPSecure = 'tls'; // Güvenli baglanti icin ssl normal baglanti icin tls
        $mail->Host = "mail.xxxx.com"; // Mail sunucusuna ismi
        $mail->Port = 587; // Gucenli baglanti icin 465 Normal baglanti icin 587
        $mail->IsHTML(true);
        $mail->SetLanguage("tr", "phpmailer/language");
        $mail->CharSet  ="utf-8";
        $mail->Username = "no-reply@xxxx.com"; // Mail adresimizin kullanicı adi
        $mail->Password = "!U+T5Q"; // Mail adresimizin sifresi
        $mail->SetFrom("no-reply@xxxx.com", "xxxx.com"); // Mail attigimizda gorulecek ismimiz
        foreach($uyeler["data"] as $uye)
        {
            $mail->AddAddress($uye["email"]);
    
        }
        $mail->Subject = "xxxx.com - ".$_POST["konu"]; // Konu basligi
        $mail->Body = $_POST["mail"]; // Mailin icerigi
        $mail->Send();
    fonksiyon oluşturmana gerek yok addadressi dizi içinde göstermen yeterli.
  • 07-10-2016, 00:03:02
    #3
    grafikcoder adlı üyeden alıntı: mesajı görüntüle
    $uyeler = $DB->ALL("uyeler","*","where durum='1' $where order by id desc",0);
        require("class.phpmailer.php");
        $mail = new PHPMailer();
        $mail->IsSMTP();
        $mail->SMTPDebug = 1; // hata ayiklama: 1 = hata ve mesaj, 2 = sadece mesaj
        $mail->SMTPAuth = true;
        $mail->SMTPSecure = 'tls'; // Güvenli baglanti icin ssl normal baglanti icin tls
        $mail->Host = "mail.xxxx.com"; // Mail sunucusuna ismi
        $mail->Port = 587; // Gucenli baglanti icin 465 Normal baglanti icin 587
        $mail->IsHTML(true);
        $mail->SetLanguage("tr", "phpmailer/language");
        $mail->CharSet  ="utf-8";
        $mail->Username = "no-reply@xxxx.com"; // Mail adresimizin kullanicı adi
        $mail->Password = "!U+T5Q"; // Mail adresimizin sifresi
        $mail->SetFrom("no-reply@xxxx.com", "xxxx.com"); // Mail attigimizda gorulecek ismimiz
        foreach($uyeler["data"] as $uye)
        {
            $mail->AddAddress($uye["email"]);
    
        }
        $mail->Subject = "xxxx.com - ".$_POST["konu"]; // Konu basligi
        $mail->Body = $_POST["mail"]; // Mailin icerigi
        $mail->Send();
    fonksiyon oluşturmana gerek yok addadressi dizi içinde göstermen yeterli.
    Cevabınız için teşekkürler, her 2 kodda farklı dosya ve farklı dizinlerde o yüzden ikisini de paylaştım.

    Fonksiyon oluşturarak paylaşmanız mumkun mu acaba
  • 07-10-2016, 00:10:28
    #4
    Gizlen adlı üyeden alıntı: mesajı görüntüle
    Cevabınız için teşekkürler, her 2 kodda farklı dosya ve farklı dizinlerde o yüzden ikisini de paylaştım.

    Fonksiyon oluşturarak paylaşmanız mumkun mu acaba
    require("class.phpmailer.php");
    function mailgonder($konu,$mesaj,$gonderilecekEpostalar = array()){
        $mail = new PHPMailer();
        $mail->IsSMTP();
        $mail->SMTPDebug = 1; // hata ayiklama: 1 = hata ve mesaj, 2 = sadece mesaj
        $mail->SMTPAuth = true;
        $mail->SMTPSecure = 'tls'; // Güvenli baglanti icin ssl normal baglanti icin tls
        $mail->Host = "mail.xxxx.com"; // Mail sunucusuna ismi
        $mail->Port = 587; // Gucenli baglanti icin 465 Normal baglanti icin 587
        $mail->IsHTML(true);
        $mail->SetLanguage("tr", "phpmailer/language");
        $mail->CharSet  ="utf-8";
        $mail->Username = "no-reply@xxxx.com"; // Mail adresimizin kullanicı adi
        $mail->Password = "!U+T5Q"; // Mail adresimizin sifresi
        $mail->SetFrom("no-reply@xxxx.com", "xxxx.com"); // Mail attigimizda gorulecek ismimiz
        foreach($gonderilecekEpostalar as $item)
        {
            $mail->AddAddress($item);
    
        }
        $mail->Subject = $konu; // Konu basligi
        $mail->Body = $mesaj; // Mailin icerigi
    
        if(!$mail->send()) {
           return false;
        } else {
            return true;
        }
    }
    
    $uyeler = $DB->ALL("uyeler","*","where durum='1' $where order by id desc",0);
    
    
    $mailgonder = mailgonder('Konu','Mesaj',array('eposta1@gmail.com','eposta2@gmail.com')); // bu normal örnek
    
    $mailgonder = mailgonder('Konu','Mesaj',$uyeler["data"]['email']); // sizin için örnek yani direk veritabandan gelen e-posta arrayını koyuyorum.
    if($mailgonder){
        print 'E-posta Başarılı';
    } else {
        print 'E-posta başarısız';
    }
    böyle birşey yaptım fakat test etmedim. çalışacağını umuyorum.
  • 07-10-2016, 00:14:43
    #5
    grafikcoder adlı üyeden alıntı: mesajı görüntüle
    require("class.phpmailer.php");
    function mailgonder($konu,$mesaj,$gonderilecekEpostalar = array()){
        $mail = new PHPMailer();
        $mail->IsSMTP();
        $mail->SMTPDebug = 1; // hata ayiklama: 1 = hata ve mesaj, 2 = sadece mesaj
        $mail->SMTPAuth = true;
        $mail->SMTPSecure = 'tls'; // Güvenli baglanti icin ssl normal baglanti icin tls
        $mail->Host = "mail.xxxx.com"; // Mail sunucusuna ismi
        $mail->Port = 587; // Gucenli baglanti icin 465 Normal baglanti icin 587
        $mail->IsHTML(true);
        $mail->SetLanguage("tr", "phpmailer/language");
        $mail->CharSet  ="utf-8";
        $mail->Username = "no-reply@xxxx.com"; // Mail adresimizin kullanicı adi
        $mail->Password = "!U+T5Q"; // Mail adresimizin sifresi
        $mail->SetFrom("no-reply@xxxx.com", "xxxx.com"); // Mail attigimizda gorulecek ismimiz
        foreach($gonderilecekEpostalar as $item)
        {
            $mail->AddAddress($item);
    
        }
        $mail->Subject = $konu; // Konu basligi
        $mail->Body = $mesaj; // Mailin icerigi
    
        if(!$mail->send()) {
           return false;
        } else {
            return true;
        }
    }
    
    $uyeler = $DB->ALL("uyeler","*","where durum='1' $where order by id desc",0);
    
    
    $mailgonder = mailgonder('Konu','Mesaj',array('eposta1@gmail.com','eposta2@gmail.com')); // bu normal örnek
    
    $mailgonder = mailgonder('Konu','Mesaj',$uyeler["data"]['email']); // sizin için örnek yani direk veritabandan gelen e-posta arrayını koyuyorum.
    if($mailgonder){
        print 'E-posta Başarılı';
    } else {
        print 'E-posta başarısız';
    }
    böyle birşey yaptım fakat test etmedim. çalışacağını umuyorum.

    You must provide at least one recipient email address.
    hatası aldım
  • 07-10-2016, 00:15:59
    #6
    ne şekilde sağladınız ben oraya örnek olarak kodlar koydum. siz kendinize uyarlayıp yerleştirdiniz demi. fonksiyon içindeki smtp ayarlarını felan düzelttinizmi ?
  • 07-10-2016, 00:18:44
    #7
    grafikcoder adlı üyeden alıntı: mesajı görüntüle
    ne şekilde sağladınız ben oraya örnek olarak kodlar koydum. siz kendinize uyarlayıp yerleştirdiniz demi. fonksiyon içindeki smtp ayarlarını felan düzelttinizmi ?

    tabiki ayarlamaları yaptım.

    toplumail.php

    $uyeler = $DB->ALL("uyeler","*","where durum='1' $where order by id desc",0);	
    		
    toplumail($uyeler["data"]["email"],$_POST["konu"],$_POST["mail"]);	
    								
    $sonuc = true;					
    echo sonuc($sonuc);

    mail.php
    function toplumail($gonder= array(),$konu,$mesaj)
    {
    require("class.phpmailer.php");
    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPDebug = 1; // hata ayiklama: 1 = hata ve mesaj, 2 = sadece mesaj
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = 'tls'; // Güvenli baglanti icin ssl normal baglanti icin tls
    $mail->Host = "mail.xxxx.com"; // Mail sunucusuna ismi
    $mail->Port = 587; // Gucenli baglanti icin 465 Normal baglanti icin 587
    $mail->IsHTML(true);
    $mail->SetLanguage("tr", "phpmailer/language");
    $mail->CharSet  ="utf-8";
    $mail->Username = "no-reply@xxxx.com"; // Mail adresimizin kullanicı adi
    $mail->Password = "!U+T5Q"; // Mail adresimizin sifresi
    $mail->SetFrom("no-reply@xxxx.com", "xxxx.com"); // Mail attigimizda gorulecek ismimiz
    foreach($gonder as $item)
        {
            $mail->AddAddress($item);
        }
    $mail->Subject = "xxxx.com - $konu"; // Konu basligi
    $mail->Body = "$mesaj"; // Mailin icerigi
    $mail->Send();
    }
  • 07-10-2016, 00:21:06
    #8
    gönderilen e-posta listelerinde örnek olarak array nesnelerini kendiniz girip deneyin, belki sorgunuzda hata olabilir
  • 07-10-2016, 00:22:18
    #9
    grafikcoder adlı üyeden alıntı: mesajı görüntüle
    gönderilen e-posta listelerinde örnek olarak array nesnelerini kendiniz girip deneyin, belki sorgunuzda hata olabilir
    son paylaştığım hali ile size göre bir hata var mı?