2011-03-03 11 views
6

में भारी मात्रा में ईमेल भेजना जंक मार्केटिंग से असंतोष को अलग करना मुझे ग्राहकों को लगभग 15,000 ईमेल भेजने की आवश्यकता है। मेरे सहकर्मी ने उन्हें PHP मेल लूप के माध्यम से भेजने की कोशिश की है लेकिन जाहिर है कि यह जल्दी से अटक गया है। क्या यह तेजी से पूरा करने के लिए एक पारंपरिक (यानी PHP स्क्रिप्ट के माध्यम से) है? यदि नहीं, तो आप कैसे सुझाव देते हैं कि मैं ऐसा करता हूं (शायद exec के माध्यम से) बहुत अधिक ओवरहेड के बिना?PHP: बैच

धन्यवाद!

+1

स्विफ्ट मेलर? http://swiftmailer.org/ – lam3r4370

उत्तर

4

पर एक भुगतान सेवा को देखना होगा, मैंने एक बार में 200,000+ मेल कतार में पीएआर के Mail_Queue का उपयोग किया है। डेटाबेस को पॉप्युलेट करना आसान और त्वरित है, यहां तक ​​कि कस्टमाइज्ड सामग्री के साथ भी, और फिर एक साधारण साधारण स्क्रिप्ट लगभग 250 बार भेजती है - यदि लोड औसत बहुत अधिक नहीं है। फिर यह चारों ओर loops और अगले बैच भेजता है।

आप उन्हें किसी भी तेजी से नहीं भेजेंगे से आम तौर पर संभव है, लेकिन यह किसी भी समस्याओं के बिना यह कर सकते हैं।

tutorial आपको लगभग हर चीज देता है जो आपको चाहिए - बस 'send_messages.php' स्क्रिप्ट के आसपास लूप (कमांड लाइन से बेहतर है) डेटाबेस कतार खाली होने तक।

+0

धन्यवाद, मैं निश्चित रूप से इसे एक शॉट दूंगा। – Gal

0

आप इसे सीजीआई के माध्यम से या कमांड लाइन पर एक स्क्रिप्ट के रूप में चला रहे हैं? इसे कमांड लाइन पर एक स्क्रिप्ट के रूप में चलाने के लिए सबसे अच्छा है।

आप कहते हैं कि यह अटक जाता है, set_time_limit(0); चल पीएचपी निष्पादन बहुत लंबा होने से छोड़ने से बचने की कोशिश।

+0

मैं या तो समाधान ढूंढ रहा हूं। सेट समय सीमा अभी भी उन्हें भेजने के लिए बहुत लंबा लगेगा। कमांड लाइन पर मुझे किस स्क्रिप्ट का उपयोग करना चाहिए? – Gal

+0

आपको कुछ भी बदलने की जरूरत नहीं है। PHP स्क्रिप्ट कमांड लाइन पर चलाया जा सकता है। –

1

कोई फर्क नहीं पड़ता कि कैसे आप तत्काल डिलीवरी लागू: यह एक लंबी प्रक्रिया हमेशा रुकावट के अधीन है कि हो जाएगा और आप वितरण प्रारंभ करके और एक ही संदेश 5000 ग्राहकों के लिए दो बार भेजने का जोखिम नहीं उठा सकते हैं।

मुझे विश्वास है कि एक विश्वसनीय प्रणाली कतारों का उपयोग करना होगा। मुख्य लिपि बस प्राप्तकर्ताओं को एक कतार में जोड़ती है और फिर आपके पास एक माध्यमिक प्रक्रिया होती है जो कतार से वस्तुओं को चुनती है, उन्हें भेजती है और आखिरकार उन्हें भेजे जाने के रूप में चिह्नित करती है। यह माध्यमिक प्रक्रिया मैन्युअल रूप से लॉन्च की जा सकती है (शायद कमांड लाइन से) या क्रॉन टैब के माध्यम से।

मैं इस्तेमाल कभी नहीं किया है, लेकिन मैं अपने बुकमार्क में यह है: http://ledscripts.com/free/php/phpledmailer

+0

-1: एक एमटीए ** आईएस ** एक क्यूइंग सिस्टम है। – symcbean

+0

@ सिमकबीन - और पेरिस एक फ्रेंच शहर है। क्या आपका डाउनवोट और टिप्पणी इस सवाल के साथ कोई वास्तविक संबंध है? –

+0

आमतौर पर आप अच्छी सलाह दे - लेकिन इसके लगभग एक कतार प्रणाली का उपयोग किए बिना ईमेल भेजने के लिए असंभव - और क्यों अधिक PHP में पंक्तिबद्ध है जब आप पहले से ही एक अच्छी तरह से लिखा कतार प्रणाली है को लागू - साथ कई ऑफ-द-शेल्फ manaing के लिए उपकरण पर जोड़ने अक्सर कतार? – symcbean

2

आप की सिफारिश के रूप में here एक कतार सिस्टम बनाने के लिए Gearman की तरह कुछ का उपयोग कर देखो सकता है। एक अन्य विकल्प Amazon's Simple Email Service (SES)