2012-02-18 14 views
9

के साथ एसिंक्रोनस ईमेल भेजें क्या phpmailer के साथ एसिंक्रोनस ईमेल भेजना संभव है?phpmailer

नियमित मेल भेजने कोड स्निपेट इस प्रकार है:

$mail->Send();

पीएचपी संदेश() पर जाने से पहले परिणाम वापस जाने के लिए के लिए इंतजार कर रहा है। क्या वास्तविक ईमेल भेजने के लिए नियमित ईमेल भेजने के इंतजार किए बिना तुरंत परिणाम देने के लिए phpmailer होना संभव है।

उत्तर

8

अद्यतन मई वर्ष 2016

उपयोगकर्ता @Sinak Salek पीएचपी बहु सूत्रण का समर्थन करता है ने उल्लेख किया। यह pthreads एक्सटेंशन का उपयोग कर उपलब्ध है।

मूल

पीएचपी देशी रूप multithreading (जो आप इस खूबसूरती से करने की जरूरत है) का समर्थन नहीं करता। हालांकि आप इसे डेटाबेस में ईमेल सहेजकर कर सकते हैं और फिर बाद में उन्हें दूसरी स्क्रिप्ट का उपयोग करके संसाधित कर सकते हैं (उदाहरण के लिए क्रॉन जॉब का उपयोग करना)। इस तरह आपको अंतर्निहित ईमेल ढांचे के लिए इंतजार नहीं करना है।

एक और बात, अगर phpmailer धीमा है तो यह अंतर्निहित मेल प्रोग्राम (sendmail, postfix आदि) के कारण गलत तरीके से सेटअप हो सकता है।

+1

धन्यवाद। हमारे मामले में हमने निम्नलिखित एसिंक कर्ल अनुरोध को एक php स्क्रिप्ट को कार्यान्वित किया जिसका एकमात्र कर्तव्य ईमेल भेजना है। http://stackoverflow.com/questions/962915/how-do-i-make-an-asynchronous-get-request-in-php – Haluk

+0

आपका स्वागत है। आपके समाधान के लिंक के लिए धन्यवाद, यह हल करने के लिए एक साफ तरीका है :) – CodeTower

+1

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

0

आप लिनक्स पर हैं, तो आप एक कार्यकारी आदेश में अपने PHP स्क्रिप्ट रख दिया और पृष्ठभूमि में इसे लॉन्च (आदेश के अंत में एक & डाल) कर सकते हैं और साइलेंट मोड (2> & 1>/dev/बातिल)

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