Merhabalar. PHPMailer ile x.xxx sayılarda mail gönderimi yapıyorum. Fakat bildiğiniz üzere hosting firmalarında saatlik/dakikalık vb. limitler var.
Bunun için formdan x mailden sonra x saniye/dakika bekle gibi değerler alıyorum. Bunu phpmailer içerine nasıl koyabilirim?
Ben dediğim gibi formdan gelen x mailden sonra x saniye/dakika vb. bekledikten sonra kalan mailleri göndermeyi devam etmesini istiyorum.
PHPMailer süre limiti ayarlama
6
●156
- 28-05-2022, 19:11:55Kodlarım içerisinde sleep() fonksiyonu zaten var hocam, onun kullanımını biliyorum. benim sorunum phpmailer ile alakalı.efekoca adlı üyeden alıntı: mesajı görüntüle
- 28-05-2022, 20:01:38
<?php $sure = int_val(@$_POST['sure']); $surecinsi = @$_POST['surecinsi'] ?? ''; $mailsayisi = int_val(@$_POST['mailsayisi']); $epostalar = $baglan->prepare('SELECT * FROM tablo_adi'); $epostalar->execute(); if ($epostalar->rowCount()) { $gonderilenmail = 0; //İçerik $mail->isHTML(true); $mail->Subject = $_POST['baslik']; $mail->Body = $_POST['icerik']; foreach ($epostalar as $row) { if (!is_int($gonderilenmail / $mailsayisi)) { $mail->AddBCC($row['tablo_sutun']); ++$gonderilenmail; } else { $mail->AddBCC($row['tablo_sutun']); ++$gonderilenmail; $mail->send(); //Süre Ayarları if ($surecinsi == 'Saniye'){ sleep($sure); } elseif ($surecinsi == 'Dakika') { sleep($sure * 60); } elseif ($surecinsi == 'Mikrosaniye') { usleep($sure); } } } } echo 'Her eposta bölümünde ' . $mailsayisi . ' adet eposta adresi olacak şekilde toplamda ' . $gonderilenmail . ' adet eposta gönderildi.'; ?> - 28-05-2022, 21:57:27Çok teşekkür ederim...aponkral adlı üyeden alıntı: mesajı görüntüle
- 29-05-2022, 20:29:53Ayrıca tabloya bir sütün ekleyebilirsiniz: gonderim_durumu
Varsayılan: 0
Eğer 1 ise eposta gönderilmiştir.
'$mail->AddBCC($row['tablo_sutun']);' her iki bu satırı içeren kodun hemen ardından gonderim durumunu 1 olarak güncellemelisin.
Döngü bloğunu ek bir şartla sınırlayarak (gonderim_durumu=0) daha önce eposta gönderilmiş olan adreslere tekrar epsosta gönderilmemesi için döngüyü sonrakiler için devam ettirebilirsin.