• 19-10-2009, 17:07:19
    #1
    Merhaba arkadaşlar,

    web üzerinde mail gönderme işlemi yapmaya çalışıyorum.
    Elimde kendime ait bir maillist var ve bunun içeriside 3000e yakın mail var.
    Aşağıdaki kod blogunu çalıştırdığımda script bir süre sonra timeout a düşüyor.

    <?php
    $myFile = "testFile.txt";
    $fh = fopen($myFile, 'r');
    $theData = fread($fh, filesize($myFile));
    fclose($fh);
    $splittedValues = explode("\n",$theData);
    $integer_var =0;
     
     
    for ( $counter = 0; $counter <= 1000; $counter ++) {
     echo $integer_var;
     $headers  = 'MIME-Version: 1.0' . "\r\n";   
     $headers = 'Content-type: text/html; charset=iso-8859-9' . "\r\n";   
     $headers .= 'From: Papaz1 . "\r\n";   
     $headers .= 'Reply-To: Yanit E-Postasi katedral1' . "\r\n";   
     $headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";    
     $alici_eposta =$splittedValues[$counter];   
     $eposta_konusu = 'Deneme HTML e-postası yolluyoruz';   
     $eposta_mesaji = 'mesaj'
     
     mail($alici_eposta, $eposta_konusu, $eposta_mesaji, $headers);
     $integer_var=$integer_var+1;
    }
    
    ?>
    heralde çok sayıda eposta çekmeye çalıştığım için böyle oluyor, peki time out a düşmesini nasıl engellerim?
  • 19-10-2009, 17:11:20
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    PHP: set_time_limit - Manual
    PHP: ini_set - Manual
    foksiyonları işini görecektir eğer sunucuda safe mode on durumda ise htaccess ile yapmayı dene
    php_value max_execution_time 0
  • 19-10-2009, 17:40:21
    #3
    sanırım sunucumda safe mode on durumda ilk 2 fonksiyon bu yüzden çalışmadı. fakat htaccess'a eklediğimde çalışmadı direk satırı kopyala yapıştır yaptım. php'den habersizim biraz, çalışmıyacak sanırım.
  • 19-10-2009, 20:10:34
    #4
    ini_set('max_execution_time', 0) or die('Hata');
    Çalışmadıysa
    .htaccess dosyası oluştur içine

    php_value max_execution_time 0
    Yaz büyük ihtimal çalışacaktır.
    Eğer çalışmazsa .htaccess içerisine

    <IfModule mod_php4.c>
      php_value max_execution_time            360
    </IfModule>
    
    <IfModule mod_php5.c>
      php_value max_execution_time            360
    </IfModule>
    Yaz çalışır,eğer bunlarda olmazsa hosting sağlayıcına durumu bildir.
  • 19-10-2009, 20:10:58
    #5
    Yeni bir dosya oluşturup içine "<? phpinfo(); ?>" (tırnaklar hariç) yazıp çalıştırın, safe mod karşısında on yada off yazar.
    ini_set fonksiyonuyla olmuyorsa;
    hostunuz kendi ini dosyanızı oluşturmaya izin veriyor olabilir, php.ini yada (sürüme göre) php5.ini dosyası oluşturup hostunuza atın, içinde de max_execution_time [değer] yazın, başka zamanla ilgili değerler de var, biraz araştırıp bulabilirsiniz.
    Olmuyorsa .htaccess i deneyin.
    O da olmuyorsa, 3000 tane maili birden göndermek yerine 100er 100er yada daha az göndermeyi deneyin, ajax kullanabilirsiniz. Ajax bilmiyorsanız en basitinden frame kullanabilirsiniz.
  • 20-10-2009, 02:44:57
    #6
    Kurumsal PLUS
    En sorunsuzu bölerek mail göndertmek olacak, 30'ar 30'ar göndertin. Sayfalama mantığını kullanın.
  • 20-10-2009, 09:05:31
    #7
    Üyeliği durduruldu
    sosyopat adlı üyeden alıntı: mesajı görüntüle
    sanırım sunucumda safe mode on durumda ilk 2 fonksiyon bu yüzden çalışmadı. fakat htaccess'a eklediğimde çalışmadı direk satırı kopyala yapıştır yaptım. php'den habersizim biraz, çalışmıyacak sanırım.
    sunucu yöneticinizden safe modu off yapmasini isteyebilirsiniz zaten php6 versiyonu ile safe mod diye bir seçenek kalmayacak