2009-10-09 17 views
5

मैं PHP और MySQL का उपयोग कर रहा हूं।PHP मेल फ़ंक्शन का उपयोग करते समय कोई सीमा है?

मैं अपने ग्राहकों को अपडेट करने के लिए 10k ++ (दस हजार प्लस) ईमेल भेजने जा रहा हूं, और यह पहली बार है कि मैं उन्हें भेजने जा रहा हूं। मैं php मेल समारोह का उपयोग करेगा, मूल रूप से यहाँ मैं क्या कर जाएगा: जबकि पाश का उपयोग कर डेटा भेजने के लिए

Select name, email FROM data 

उसके बाद,:

while($r = mysql_fetch_assoc($exe)){ 
    ... 
    if($mail){ 
     echo "success<br>"; 
    } else { 
     echo "failed<br>"; 
    } 
} 
echo "Sent all"; 

पहले डेटाबेस से डेटा प्राप्त

मैं यह सुनिश्चित करने के लिए कि प्रत्येक ईमेल सफलतापूर्वक भेजा गया है, तो .. अन्य कथन शामिल है। क्या मुझे कुछ भी ख्याल रखने की ज़रूरत है? 10K ++ उपयोगकर्ताओं को भेजते समय मुझे कोई समस्या होगी?

क्या आपके द्वारा भेजे जा रहे ईमेल की संख्या की एक सीमा है?

+1

संबंधित - http://stackoverflow.com/questions/788596/whats-the-best-approach-to-sending-email-to-hundreds-of-recipients-from-a-zend-f – warren

उत्तर

4

ईमेल नंबर की कोई सीमा नहीं है, लेकिन PHP स्क्रिप्ट की समय सीमा है। अपने php.ini में max_execution_time सेट करें, आमतौर पर यह 20 या 30 सेकंड है। यदि आप इसे नहीं जानते हैं, तो इसे खोजने के लिए phpinfo() का उपयोग करें।

इसके अलावा, आपको उपयोगकर्ताओं को बहुत अधिक ईमेल प्राप्त करने से रोकने के लिए कुछ कदम उठाने चाहिए। आपको उन्हें भेजे गए रूप में चिह्नित करना चाहिए, इसलिए यदि आप गलती से दो बार स्क्रिप्ट शुरू करते हैं तो उन्हें डबल पोस्ट प्राप्त नहीं होते हैं।

इसके अलावा, आपको ध्यान रखना चाहिए कि PHP का मेल फ़ंक्शन स्वाभाविक रूप से अनुकूलित नहीं है। आप phibrimemessage या किसी अन्य की तरह कुछ पुस्तकालयों को आजमा सकते हैं, जो आपको कुछ कैशिंग में करने की अनुमति देगा, उदाहरण के लिए, कई अन्य सुविधाओं के बीच।

+0

ओमग, मैं उसे नहीं पता था। तो, आप आमतौर पर 10k ++ ईमेल भेजने के लिए "phpmimemessage" का उपयोग करते हैं? आप किस लाइब्रेरी का उपयोग कर रहे हैं? – bbtang

+0

मैंने कुछ और जटिल किया है, लेकिन हाँ, मैं इस पुस्तकालय का उपयोग बड़े पैमाने पर मेलिंग (न्यूजलेटर) करने के लिए कर रहा था। मिमेमेसेज अब काफी पुराना है, अब बेहतर पुस्तकालय हैं, अन्य उत्तरों देखें, या उनके लिए Google। मेरी लिपि सीएलआई से पृष्ठभूमि में चल रही थी, हालांकि, समय सीमाओं के बिना। – Palantir

9

कृपया mail documentation से इस नोट के बारे में पता होना:

नोट: यह ध्यान देने योग्य मेल() फ़ंक्शन एक पाश में ईमेल की बड़ी मात्रा के लिए उपयुक्त नहीं है कि लायक है। यह फ़ंक्शन प्रत्येक ईमेल के लिए एक SMTP सॉकेट खोलता है और बंद करता है, जो बहुत ही कुशल नहीं है।
बड़ी मात्रा में ईमेल भेजने के लिए, »PEAR :: मेल, और» PEAR :: Mail_Queue पैकेज देखें।

+0

विस्फोट ईमेल भेजने के लिए आप किस लाइब्रेरी का उपयोग करते हैं? नाशपाती :: मेल ?? मैं उस सामान का अध्ययन करने जा रहा हूं। धन्यवाद – bbtang

+0

नाशपाती का उपयोग करें :: Mail_Queue, मेल नहीं –

2

आपको भेजे गए/विफल ईमेल की कतार बनाना चाहिए, इसलिए आप असफल प्रयासों को फिर से भेजने का प्रयास कर सकते हैं और कुछ गलत होने पर ईमेल भेजने से बच सकते हैं।

एक पाश है कि मेल के माध्यम से 10k ईमेल भेजने के लिए कोशिश करता है नहीं बना करो()

इसके अलावा, सबसे अधिक संभावना को सीमित कर आप अपने ISP या मेजबान के मेल सर्वर की है कि हो जाएगा मारा जाएगा।

0

आप mailman, या कम से कम उपनाम समूहों (यदि संभव हो) का उपयोग कर "असली" मेलिंग सूची टूल सेट अप करना चाहते हैं।

इसके अलावा, सर्वरफॉल्ट पर संबंधित प्रश्न देखें: https://serverfault.com/questions/67154/sending-an-email-to-about-10k-users-not-spam, जहां PHPlist का उल्लेख दूसरों के साथ किया गया है।और यहां - https://serverfault.com/questions/68357/whats-the-best-way-to-send-bulk-email

संबंधित मुद्दे