• 13-09-2008, 21:12:56
    #1
    Selam arkadaÅŸlar.

    Elinde üyeleri (emailleriyle) olan her sitenin bilimum ihtiyacıdır heralde toplu mail gönderimini yapacak olan bi script. İşte öyle birşeye ihtiyacım var. Belki PHP ile yapımı zor olmaz ama uzun olucaktır spama düştüydü düşmediydi gittiydi gitmediydi derken.

    Elinizde güvendiğiniz, headers parametreleriyle sağlam şekilde Inbox a düşen (Hotmail) , Sorun yaratmayan, HTML formatıyla gönderimi kabul eden bir toplu mail scripti varmı?

    Malum gün geçtikce değişik sorunları çıkan yenilikler isteyen bi olay. Şuan en güncel çalışan bi script yapmam zaman alıcak o yüzden elinde halihazırda kullanan varsa paylaşabilirmi diye merak ediyorum

    Şimdiden tüm webmaster arkadaşlara teşekkürler.
  • 13-09-2008, 21:15:36
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    varsa bende isterim
  • 13-09-2008, 22:41:52
    #3
    Hadi arkadaşlar 2 olduk Mübarek Ramazanda 2 kişiden dua alcanız. Bire 2 verio hadi gençler :P
  • 13-09-2008, 22:50:19
    #4
    Üyeliği durduruldu
    Kod parçasını yine forumdan buldum; direk atarsanız çalışmaz, armutu önce pişirmeniz lazım

    Alıntı
    <?PHP
    ob_start('gz_handler'); // Header alredy sent hatasını önlemek için kullanın.
    header ("Content-Type: text/html; charset=iso-8859-9");
    // İşlem Zaman aşımına uğramasın diye aşağıdaki fonksiyonu ekleyin
    function mail_set_time_limit($limit) {
    if (!get_cfg_var('safe_mode')) {
    set_time_limit($limit);
    }
    }
    // Mailler için bir veritabani bağlantısı yapmadan txt dosyasından okutarak gönderelim. ama illa veritabani bağlantısı yapacağım diyorsanız değerlerin tamamını bir değişkene atayarak explode ile bölerek işlem yapmanız performans açısından lehinizedir.

    // Kaç tane mail adresi var onu öğrenelim , txt dosyasında her mail adresi bir satırda olacak şekilde yazılmış diye düşünüyorum.
    $dosyaadi = "maillistesi.txt";
    $satirlar = file($dosyaadi);
    $satirsayi = count($satirlar);

    // $_GET kullanılacağı için ilgili veriyi güvenli hale getirelim
    // Bu işlem için aşağıdaki fonksiyonu kullanalım.
    function VeriDuzenle($str)
    {
    $str = htmlspecialchars("$str", ENT_QUOTES);
    $str = preg_replace("'\s+'"," ",$str);
    $str = ltrim(rtrim($str));
    return $str;
    }

    // Ayarlarımızı yapıyoruz , bir seferde kaç mail gönderilecek , kaç saniye beklenecek gibi.
    $gonder = VeriDuzenle($_GET["gonder"]) ? VeriDuzenle( $_GET["gonder"]) : 0;
    $kactane = 50; // her defasında kaç mail gönderilecek
    $araver = 2; // her seferinde kaç saniye ara verecek


    // üstteki koddan devam
    for($i=$gonder; $i<$gonder+$kactane ; $i++)
    {
    // bu döngü ne yapar , eğer $gonder değeri $gonder+$kactane değerinden küçükse betik çalışmaya devam eder , yani ilk çalıştırdık ve listemizde 500 adres var her seferinde 50 mail göndereceğiz bu durumda
    //$i=$gonder; $i<$gonder+$kactane şu değerleri almış olacaktır
    //$i=0 ; $i<0+50 , bir sonraki calışmasında değerler şu şekilde artacaktır.
    //$i=50; $i<50+50


    // mail gönderim kodunuz burada çalışacak

    }

    // şimdi de listedeki mail sayısı ile gonderilen mail sayısına bakalım eğer gönderilen sayı daha küçükse sıradaki gruba gondermesi için betiği tetikleyelim.

    if(count($satirlar) > ($gonder+$kactane))
    {
    header("refresh: $araver; url=mailgonder.php?gonder=".($gonder+$kactane)); // belirttiğimiz saniye aralığında sayfayı yeniler
    }

    // yukarıdaki yönlendirme şu şekilde olacak
    // 1nci döngüde yönleneceği adres | mailgonder.php?gonder=50
    // 2nci döngüde yönleneceği adres | mailgonder.php?gonder=100
    // dolayısıyla yukarıda yazılan for dongusu kaçtan başlayıp kaça kadar çalıştığını bilecek


    $headers = "From: info@benimsiteminadresi.org\n" .
    'X-Mailer: PHP/' . phpversion() . "\n" .
    "MIME-Version: 1.0\nContent-Type: text/html;charset=iso-8859-9\n" .
    "Content-type: text/html; charset=iso-8859-9\n".
    "Content-Type: text/html; charset=utf-9\n" .
    "Content-Transfer-Encoding: base64t\n";
    Normalde mail() fonksiyonu ile headerleri doğru ayarladı iseniz zaten spam a düşmez. Hotmailde spama düşerse, nedeni "black list"dir. SenderID ile sorunu çözersiniz diye tahmin ediyorum. Kendi yazdığım fonksiyonlarda da hiç sorun yaşamadım, ta ki 1and1 ile papaz oluncaya kadar
  • 13-09-2008, 23:01:11
    #5
    VerdiÄŸin kodu birazdan deniycem.

    Mail gönderme olayı zor bişey değil. 3 4 form verisini POST ile alıp döngüyle mail() fonksiyonuyla listeye göndermek sorun olmayacaktır. Ama header ları doğru olarak ayarlamak biraz can sıkıyor. IP min blacklist de olmadığından eminim. header lar biraz zorluyor adamı. Örn hostumdaki vbulletin forumunun panelinden üyelere mail gönderiyorum. Hotmailde inbox a düşüyor. Ama aynı hostta bulduğum yada yaptığım (iyi kötü headerları dizilmiş) scriptlerde Junk oluyoruz. Yani koda header lara göre değişiyor.

    Yukarıdaki kodu deneyip (adam edip) tekrar dönüş yaparım lazım olanlarda yararlanır..
  • 13-09-2008, 23:05:37
    #6
    şöyle bişeymi arıyorsunuz tam anlayamadım?
  • 14-09-2008, 05:44:01
    #8
    Harrikasınız arkadaşlar bunlar mutlaka iş görecektir şimdi toparlarım bişeyler ben buralardan!