जूमला 3.5.1 में अपग्रेड करने के बाद, मुझे अपने Invalid Addressकुछ एक्सटेंशन में एक त्रुटि मिलती है जो PHPMailer (जूमला मेलिंग सिस्टम) का उपयोग करती है।
मैं इसे कैसे ठीक करूं?
जूमला 3.5.1 में अपग्रेड करने के बाद, मुझे अपने Invalid Addressकुछ एक्सटेंशन में एक त्रुटि मिलती है जो PHPMailer (जूमला मेलिंग सिस्टम) का उपयोग करती है।
मैं इसे कैसे ठीक करूं?
जवाबों:
यदि आपको यह त्रुटि मिल रही है क्योंकि आप ईमेल भेजने वाले कुछ एक्सटेंशन का उपयोग कर रहे हैं, तो कृपया डेवलपर पृष्ठ पर जाएं, और पहले सुनिश्चित करें कि आप नवीनतम संस्करण का उपयोग कर रहे हैं ।
यदि आप 100% सुनिश्चित हैं कि आप नवीनतम संस्करण का उपयोग कर रहे हैं, लेकिन फिर भी यह त्रुटि हो रही है, तो आपको डेवलपर से संपर्क करना चाहिए और उनसे इस त्रुटि के बारे में पूछना चाहिए। उन्हें इस पृष्ठ का लिंक भेजना, डेवलपर को इस त्रुटि को ठीक करने में मदद कर सकता है ।
यदि आप अपने आप को PHP के साथ पर्याप्त रूप से अनुभवी मानते हैं, तो आप नीचे "डेवलपर्स के लिए उत्तर" का उपयोग करके, कोड को अपने दम पर पैच करने की कोशिश कर सकते हैं।
कृपया ध्यान दें कि यह एक स्थायी समाधान नहीं होगा, लेकिन सिर्फ एक "पैच" होगा, जब तक कि डेवलपर एक नया संस्करण जारी नहीं करता।
जूमला 3.5.1 डिफ़ॉल्ट रूप से PHPMailer के अपवादों को सक्षम करता है। इस प्रकार त्रुटियां जो पहले छिपी हुई थीं, वे दिखाई देती हैं।
एक मामला जहां यह दिखाता है कि यह अब addReplyToफ़ंक्शन के साथ है ।
जूमला 2.5 addReplyToमें एक सरणी पैरामीटर था।
जूमला 3.0 ( हाँ, 2012 में वापस ) के साथ शुरू हुआ जूमला का JMail फ़ंक्शन स्ट्रिंग मापदंडों के अलग-अलग तरीके से सरणियों को संभालने के लिए नहीं बदला। इस प्रकार यह अंतर्निहित PHPMailer कोड पर निर्भर करता है, जो हालांकि बदल भी गया और इस प्रकार उत्तर-सही तरीके से जोड़ने में विफल रहा।
PHPMailer उस के लिए एक अपवाद फेंक देता है, लेकिन जब तक कि जूमला 3.5.1 तक किसी ने भी उस अपवाद को नहीं देखा अगर आपने मैन्युअल रूप से अपवाद हैंडलिंग को सक्षम नहीं किया था!
समाधान
आप addReplyToइस तरह के लिए अपना एक्सटेंशन कोड खोज सकते हैं और लाइनें बदल सकते हैं:
$mailer->addReplyTo(array($replyTo, $replyToName));
इसके लिए:
if(version_compare(JVERSION, '3.0', 'ge')) {
$mailer->addReplyTo($replyTo, $replyToName);
} else {
$mailer->addReplyTo(array($replyTo, $replyToName));
}
इसके अलावा आप try {} catch() {}JMail / PHPMailer से आने वाले अपवाद को संभालने के लिए आवश्यकतानुसार कोड जोड़ना चाहते हैं ।
अधिक जानकारी: