mail ile 100 üzerinden göndermek ()

4 Cevap php

Ben sadece 100 rehber i e-posta için ihtiyaç var

while ($row = mysql_fetch_array($result)){  

	$message = "Hello ".$row['first_name'].", \r\n";
	$message = $message.$_POST['message'];

		if (mail($row['email_address'], $subject, $message, $headers)){
			$sent ++;
		}else{
			$error ++;
		}
	}

Bu tamam çalışacak? Ben diğer yöntemlerle (armut, smtp) baktı ama bu iyi çalışacak merak var?

Teşekkürler

4 Cevap

Geçenlerde 100 üzerinden alıcılara göndermek için posta fonksiyonunu kullandık. Yani evet bu iş olacak.

Posta çağrılar arasında işlevi, ama hafif bir gecikme (100ms) ile bazı sorunlar bu sorunu çözmek vardır yardımcı nerede.

Bu olacak çok sunucu yapılandırması ve sağlayıcınız tarafından dayatılan sınırı olası bir "x başına E-postaların maksimum sayı" bağlıdır. Mail () toplu posta için mükemmel bir komut değil ama genel deneyim dışında ben birkaç yüz postalara kadar şey ince çalışma olasılığı olduğunu söyleyebilirim.

Gönderme (muhtemelen nedeniyle böyle bir sınırlama) hemen başarısız olduğu için adresleri oturum ve geri kalanı için bir sıçrama adresi kurma unutmayın.

Zaman gecikmesi için uyku (int saniye) veya usleep (int mikrosaniye) kullanın.

Her döngüde döngü sonunda küçük gecikmeler için usleep kullanmalısınız, ya da örneğin her 10 posta sonra uyku. Posta sunucusu kapasitesine bağlıdır.

Eğer posta sunucusu sayısı işlemek farkında değilseniz, adreslerin küçük gruplar halinde çalışmalarını bölmek ve bir geçici depolama (yani MySQL tablo) ekleyebilirsiniz.

Daha sonra her sayfa istek üzerine, bazı adresler almak iletileri göndermek ve geçici tablodan bunları kaldırabilirsiniz.