/ / Php में ईमेल सूचना कैसे शेड्यूल करें - php, ईमेल

Php - php, ईमेल में ईमेल अधिसूचनाओं को कैसे शेड्यूल करें

मुझे पता है कि PHPmail का उपयोग करके ईमेल कैसे भेजा जाता है। लेकिन क्या होगा अगर मुझे बहुत सारे ईमेल भेजने की आवश्यकता है?

यह साइट के लिए "सूचना" हो सकती हैग्राहक जब कोई नया संदेश पोस्ट करते हैं। सीधे पेज हैंडलर में ऐसा करने से प्रदर्शन प्रभावित होगा और ब्राउज़र लोडिंग बहुत धीमी हो जाएगी। इसलिए मुझे यह काम "पृष्ठभूमि" में करना होगा।

मैं अपने मामले में - ईमेल भेजकर PHP में कुछ "शेड्यूल" कैसे कर सकता हूं? उदाहरण के लिए C ++ में मैं एक अलग धागा बनाऊंगा लेकिन AFAIK में PHP में मल्टीथ्रेडिंग जैसी कोई चीज नहीं है।

उत्तर:

जवाब के लिए 8 № 1

एक डेटाबेस में सहेजा गया ईमेल-कतार भेजने वाला CRON कार्य बनाएँ:

  1. एक db में सभी जानकारी के साथ एक ईमेल सहेजें।

  2. समय-समय पर (हर आधे घंटे की तरह) एक सीआरओएन नौकरी का उपयोग करें - आपके होस्टिंग प्रदाता और उन ईमेलों की संख्या पर निर्भर करता है जिन्हें आप "बाहर भेज रहे हैं" कतार से ईमेल हड़पते हैं और उन्हें बाहर भेजते हैं। sent डेटाबेस में ईमेल पर झंडा, आप चाहते हैं (जैसे समय, त्रुटियों, हेडर, ...) भेजने की जानकारी जोड़ें।

ईमेल को तोड़ना और भेजना सुनिश्चित करेंकुछ ईमेल सर्वरों के विरोधी स्पैम और बाढ़-रोधी सुरक्षा की समस्याओं से बचने के लिए उन्हें रोकें। कुछ मेलर पुस्तकालयों में इसके लिए प्लगइन्स होते हैं (जैसे SwiftMailer)।


जवाब के लिए 3 № 2

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


जवाब के लिए 2 № 3

आप एक स्क्रिप्ट चलाने के लिए समय-समय पर क्रोन जॉब का उपयोग कर सकते हैं और कोई भी बकाया सूचनाएं भेज सकते हैं।

एक विकल्प पृष्ठभूमि में एक और प्रक्रिया शुरू करने के लिए होगा, जैसे कुछ का उपयोग कर: exec("php send_notifications.php 1>/dev/null 2>1 &"); (अंत में सामान पर ध्यान दें)।


उत्तर के लिए 1 № 4

आप उपयोग कर सकते हैं क्रोन जॉब्स बनाएं इस उद्देश्य के लिए और follwoing देखें विचार-विमर्श


उत्तर के लिए 1 № 5

मैं एक पृष्ठभूमि प्रक्रिया का उपयोग करता हूं (एक PHP प्रोग्राम हो सकता हैयदि आप CLI [कमांड लाइन इंटरफ़ेस] के माध्यम से सर्वर तक पहुंच रखते हैं, तो कमांड लाइन से दौड़ें। प्रक्रिया भेजे जाने के लिए कतारबद्ध ईमेल के लिए MySql तालिका की जांच करती है।

मेरे दृष्टिकोण में ब्राउज़र का उपयोग ईमेल भेजने के लिए नहीं किया जाता है, बल्कि केवल इसे MySql तालिका में लिखने के लिए किया जाता है।


उत्तर के लिए 1 № 6

अपने सभी ईमेल डेटा को एक मैसकल डेटाबेस में संग्रहीत करें। टेबल संरचना की तरह हो सकता है।

TO_EMAIL_ID | EMAIL_TYPE | EMAIL SUBJECT | EMAIL_CONTENT | PROCESSED | INSERT_TIME

इस तालिका में अपनी सभी ईमेल सामग्री डालें। और एक php स्क्रिप्ट है जो इस तालिका से डेटा प्राप्त करती है और बैचों में ईमेल भेजती है, और भेजे गए ईमेल को संसाधित करने के रूप में हटाता / चिह्नित करता है। मान लें कि फ़ाइल sendMailers.php है फिर आप हर 5 मिनट में इस फ़ाइल को चलाने के लिए क्रोन जॉब सेट कर सकते हैं। देख http://www.foogazi.com/2006/12/07/understand-cron-jobs-in-5-minutes/

*/5 * * * * PATH_TO_PHP  sendMailers.php

उत्तर के लिए 0 № 7

आपको उपयोग करने की ज़रूरत है शेड्यूल कार्य विंडोज़ में, या यूनिक्स की तरह ओएस में क्रॉन जॉब्स (यानी: लिनक्स)।