PHP Toplu E-posta - Dedicated IP Max?

5 Cevap php

Hi Is there any way i can send out about 3000+ emails from one php script request without overloading a dedicated IP... the max would be 500 per hour?

Beni alamadım .. Eğer burada :) ayrıntılı

Ben sadece benim özel IP üzerinden saat başına PHP mail () fonksiyonu aracılığı ile 500 e-postalar göndermek, i () işlevleri posta dışarı bir e-posta adresinden çekti, örneğin e-posta 3000 satırları göndermek ama sendeleyip herhangi bir yolu yoktur Saatte 500 ...

Teşekkürler zaten!

5 Cevap

Create 2 tables, one for the email message and one for the list of recipients. Then create a script to be run by cron that checks if there is a new message in the message table and if so sends a batch of email to the next set of recipients. Marking each recipient after the mail is sent.

Sonra bir mesaj oluşturmak ve kullanıcı cron işi o kadar alır ve işler gitmek için hazır olarak mesaj işaretleri kez iletiye alıcıları eklemek için müşteri için bir web arayüzü oluşturmak.

Gönderilmek üzere herhangi bir mesaj yoksa cron işi bir şey yapmaz.

Sen çağrılar arasında uyku, ya da, bir veritabanında zaten eğer, gönderildikleri zaman diyor ki orada bir alan koyabilirsiniz. Sonra Gönderilmemiş olanları seçin, ve oradan başlar.

Ben son e-posta her kullanıcıya gönderilen ve hangi e-posta oldu zaman göstermek için DB bir alanı koymak istiyorsunuz. Ben de henüz tüm kullanıcılara gönderilen eğer gönderdiğiniz her e-posta göstermek için başka bir DB tablo var ve olacaktır.

User Table:
Id, UserName, Email, etc, DateTimeOfLastEmail, LastEmailId

Email Table:
Id, EmailSubject, EmailContent, DateTimeSent, SentToAll(True/False), DateTimeOfFinish

sıra bazı matematik yaptıktan sonra bir e-posta her 8.3 saniyede (498/hr) gönderebilir ama bu sorunu çözmüyor. Ben başka bir yaklaşım 500 için bir DB, sorgu kullanmak ve bir CRON iş komut dosyası her saat çalıştırmak zorunda olacağını düşünüyorum.

Yani DB tablo size e-posta sonraki Cron gönderilmesi gerekmektedir sonraki 500 e-postaları sorgulamak ve alacak şekilde gönderildikten sonra komut bir alanı güncelleştirmek olabilir.

Hi Thanks for all the answers! The best way i found was actually to simply sleep() between calls using the sleep() as i tested 400 mails, this took 17 seconds :)

Bu kullanıcı 450 sınırdan daha fazla göndermek mümkün değildir ... ama eğer ben bir süre önce ise bildirimde () 450'den fazla satır varsa her ... Bu uyku arasındaki böyleyse, kontrol biter Can sıkıcı veritabanları olmadan çalışıyor :)

Teşekkürler!