merhabalar arkadaşlar
üyelerime mail çekmek istiyorum. sitem özel script olduğu için böyle bir özellik ekletmedim yaptırırken. şimdi bu mail olayını nasıl yapabilrim acaba?
mail server yapmak ile ilgili bi kaç şey okudum ama çözemedim.
evde kullandığım bilgisayar çift işlemci sanırım kaldırır mail server olayını bilen arkadaşlar yardım veya öneride bulunabilrler mi acaba
ilginiz için şimdiden teşekkürler
toplu mail / mail server
8
●1.211
- 20-02-2008, 10:56:23Toplu mail için mail server şart değil. İstersen yazdıracağın veya internetten bulabileceğin bir ücretsiz script ile yollatabilirsin. Kendi sitenin bulunduğu server mail atma olayını karşılamaktadır zaten. Tabi yararları veya zararları hakkında biraz araştırma yapsan fena olmaz kolay gelsin
- 12-05-2008, 23:12:19Kimlik doğrulama veya yönetimden onay bekliyor.şöyle bir yöntem izleyebilirsiniz arkadaşlar.
öncelikle gönderilecek mailleri tek seferde göndermeyi denemeyin bu yapılacak en kötü davranış olur , belirli bir zaman bekleyerek gruplar halinde atın mailleri, peki bunu nasıl yapacağız derseniz. aşağıdaki yolu izleyin.
<?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 verecekbu bölüme kadar maillistesi.txt dosyasından göndereceğimiz mail sayısını öğrendik , zaman aşımına uğramaması ve header hatası vermemesi için gereken kısımları yazdık , her defada kaç mail gönderip ne kadar bekleyeceğini değişkenlere atayarak ayarladık.
şimdi bir for döngüsü yaratarak her seferinde bir sonraki grubun gönderilmesini sağlıyoruz.
// ü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ı bilecekyukarıdaki mantıkla mail gönderiminde max_execution_time sınırı sıkıntısını yaşamadan mail gönderebilirsiniz.
Eğer HTML içerikli mail göndermek istiyorsanız mail gönderim kodunuzun header bilgisini şu şekilde tanımlayın.
$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";hepinize kolay gelsin.