Toplu e-postalar php (muhtemelen bir kabuk soru?) Gönder

3 Cevap php

Ben sitemde 80.000 kullanıcıları var ve ben son zamanlarda (forum betik çok şişirilmiş ve benim basit bir site için yoğun kaynak gibi iyi çalışır kendimi çok basit bir şey uzağa kullanarak oldum forum script döndü ve inşa ettik )

Ben kaybettim tek şey, kitle e-posta tüm üyeler için yeteneğidir.

Ben bunu kendim yapmak için bir komut ile gelip arıyorum. (Burada soruları dahil) etrafa sonra Swift Mailer, iyi bir fikir olacağını kullanırken verdi.

Ancak ben tüm belgeler üzerinden oldum ve "bir seferde 100" demek nasıl gönderileceği göremiyorum ve ben bu konuda gitmek nasıl emin değilim.

Bunu basitçe söylemek gerekirse. İki "konusu" girişli ve "mesaj" ile bir form ile bir admin paneli var. Bana benim sunucu çökmesini veya spam olarak işaretlenmiş olmadan 80.000 e-postalar göndermek için güvenli yolu nedir göndermek tıkladığınızda?

Ben böylece paylaşılan sunucuları ile ilişkili bir sorun yok oldukça etli adanmış bir sunucu üzerinde değilim.

Herhangi bir tavsiye için şimdiden teşekkür ederiz!

3 Cevap

Güvenli seçenek e-postalar birbiri ardına göndermektir. Ben genellikle en fazla 10 e-postalar evey 10 dakika gönderebilirsiniz. Cron tarafından ateş basit bir script tüm ihtiyaç vardır.

Aynı anda birçok e-posta göndererek bir şey ama hepsini sunucular filtreleri tarafından teslim ve geçti diffrent şey ...

Swiftmailer gibi A sınıfı toplu e-posta yapmak için seçenekler vardır.

Here's my idea... Assuming you are hosted on a linux type box. This is of course at the bare minimum without knowing your code. Create a file on the server called sendmails.php

<? 
loop through email addresses however you do it
{
 usleep(250000); // sleep for quarter of a second 
 mail('user@example.com', 'My Subject', 'message');
}
?>

Kaydedin, daha sonra başka bir dosya startemails.php Eğer tarayıcınızda açabilirsiniz

<?
system("&php sendmails.php");
?>

Even if the server times out, the system call should still complete its work. 80,000 emails should send over about 6 hours using this method. Change the time in usleep to take more or less time.