सीआई ईमेल भेजें() फ़ंक्शन केवल सत्य या गलत लौटाता है। एक भेजने का असफल होने के कारण एक और विस्तृत कारण प्राप्त करने का कोई तरीका है? मैं एसएमटीपी का उपयोग कर रहा हूँ।कोडनिर्देशक ईमेल त्रुटि हैंडलिंग
उत्तर
आप अपने मेल लॉग देख सकते हैं। यदि मेल त्रुटियां खत्म हो जाती हैं तो आपके पास रिकॉर्ड होना चाहिए कि वहां क्यों है।
मुझे यकीन नहीं है कि वे कहां स्थित होंगे, हालांकि यह आपके सिस्टम पर निर्भर करता है।
सीआई ईमेल कक्षा के साथ आप ईमेल लॉग कैसे सेट अप करते हैं? – samxli
आप आगे निरीक्षण कर सकते हैं क्या ईमेल डिबगर का उपयोग करके हुआ:
$r = $this->send();
if (!$r)
$this->email->print_debugger()
;
Codeigniter Email Class Reference से।
आप एक स्ट्रिंग के रूप डिबगर उत्पादन की जरूरत है, तो आप सिर्फ उत्पादन एक output buffer साथ पकड़ कर सकते हैं:
$errors = array();
... # Loop
$r = $this->send();
if (!$r) {
ob_start();
$this->email->print_debugger();
$error = ob_end_clean();
$errors[] = $error;
}
... # Loop end
मुझे एक स्ट्रिंग में डीबगर आउटपुट की आवश्यकता है क्योंकि मैं त्रुटियों को फ्रंट एंड (जेसन के माध्यम से) में वापस कर रहा हूं। ऐसा करने का कोई तरीका? – samxli
मैंने आपको यह दिखाने के लिए उत्तर संपादित किया है कि आप एक चर के लिए डीबगर आउटपुट को कैसे असाइन कर सकते हैं। – hakre
मेरे पास बड़े पैमाने पर ईमेल भेजने के लिए एक लूप में प्रेषण() है। अगर ईमेल सफल है, तो मैंने जेसन में सफलता संदेश दिया। यदि विफल हो गया है, तो मैं ob_end_clean() का उपयोग कर सकता हूं लेकिन इसका उपयोग करने के दुष्प्रभाव हैं क्योंकि यह एक लूप में होगा? – samxli
print_debugger()
समारोह काम करेगा लेकिन यह तल पर ई-मेल शीर्ष लेख और संदेश जोड़ देता है। यदि आप केवल इतना चाहते हैं डिबग संदेश (जो दोनों सफलता और त्रुटि संदेश शामिल) की एक सरणी है, तो आप ईमेल वर्ग की कार्यक्षमता बढ़ाने के रूप में इस पर विचार कर सकते:
<?php
class MY_Email extends CI_Email
{
public function clear_debugger_messages()
{
$this->_debug_msg = array();
}
public function get_debugger_messages()
{
return $this->_debug_msg;
}
}
तुम एक में इस जगह करना चाहते हैं आपके ./application/libraries फ़ोल्डर में MY_Email.php नाम की फ़ाइल। कोडइग्निटर स्वचालित रूप से इस वर्ग के अस्तित्व को पहचान लेगा और इसे इसके डिफ़ॉल्ट के बजाय उपयोग करेगा।
आप डिबग संदेशों की सूची (सरणी) प्राप्त करना चाहते हैं, तो आप ऐसा कर सकते हैं:
$this->email->get_debugger_messages();
आप संदेश के माध्यम से पाशन कर रहे हैं और पिछले प्रयास से डिबगर संदेशों को शामिल नहीं करना चाहते हैं , तो आप ऐसा कर सकते हैं:
foreach ($email_addresses as $email_address)
{
$this->email->to($emai_address);
if (! $this->email->send())
{
echo 'Failed';
// Loop through the debugger messages.
foreach ($this->email->get_debugger_messages() as $debugger_message)
echo $debugger_message;
// Remove the debugger messages as they're not necessary for the next attempt.
$this->email->clear_debugger_messages();
}
else
echo 'Sent';
}
संदर्भ: "विस्तार मूल निवासी पुस्तकालय" http://ellislab.com/codeigniter/user-guide/general/creating_libraries.html की धारा।
यह अच्छा है। साझा करने के लिए धन्यवाद। – hakre
यह समाधान बहुत उपयुक्त दिखता है क्योंकि मैं पहले ही ईमेल क्लास के बिट्स ओवरराइड कर रहा हूं। मै उसे करने की एक कोशिश तो करूंगा! – samxli
@ सैमक्सली - मैंने अपना उदाहरण अपडेट किया है, अगर आप ई-मेल पते के माध्यम से लूपिंग के प्रयासों के बीच में डीबगर संदेशों को साफ़ करना चाहते हैं। मैंने एक 'clear_debugger_messages' फ़ंक्शन जोड़ा है और एक विस्तृत उदाहरण प्रदान किया है। यदि आप सभी प्रयासों को पूरा करने के बाद सभी डीबगर संदेशों को प्राप्त करना चाहते हैं, तो बस उन्हें साफ़ न करें और आपको अंत में एक पूर्ण सरणी मिल जाएगी। –
- 1. कोडनिर्देशक ईमेल
- 2. कोडनिर्देशक कस्टम ईमेल सत्यापन नियम
- 3. कोडनिर्देशक
- 4. पेज/जावास्क्रिप्ट त्रुटि हैंडलिंग
- 5. स्मॉलटॉक त्रुटि हैंडलिंग
- 6. pgp_sym_encrypt/pgp_sym_decrypt त्रुटि हैंडलिंग
- 7. सीएक्सएफ त्रुटि हैंडलिंग ओवरराइड
- 8. PHP DOMDocument त्रुटि हैंडलिंग
- 9. सक्रिय संसाधन त्रुटि हैंडलिंग
- 10. malloc त्रुटि हैंडलिंग
- 11. jQuery AJAX त्रुटि हैंडलिंग
- 12. त्रुटि हैंडलिंग/लॉगिंग रणनीति
- 13. अच्छा त्रुटि हैंडलिंग अभ्यास
- 14. कोडनिर्देशक
- 15. कोडनिर्देशक:
- 16. कोडनिर्देशक
- 17. कोडनिर्देशक
- 18. कोडनिर्देशक
- 19. लूप में vba त्रुटि हैंडलिंग
- 20. अधिकतम निष्पादन समय त्रुटि हैंडलिंग
- 21. एसक्यूएल सर्वर त्रुटि हैंडलिंग पैटर्न
- 22. पाइथन विशिष्ट त्रुटि कोड हैंडलिंग?
- 23. कोणीय: $ http 404 त्रुटि हैंडलिंग
- 24. Tastypie-django कस्टम त्रुटि हैंडलिंग
- 25. ईमेल सर्वर प्रमाणीकरण त्रुटि
- 26. उल्का ईमेल त्रुटि
- 27. कोडनिर्देशक - HTML
- 28. कोडनिर्देशक कुकीज़
- 29. कोडनिर्देशक: इंस्टेंस
- 30. कोडनिर्देशक एसक्यूएल
क्या आप [बिल्ड-इन सीआई त्रुटि हैंडलिंग रूटीन और सेटिंग्स] का उपयोग कर रहे हैं (http://codeigniter.com/user_guide/general/errors.html)? – hakre
संभावित डुप्लिकेट: http://stackoverflow.com/questions/5777352/error-when-sending-smtp-email-with-google-and-codeigniter – hakre
यदि यह उत्पादन में है, तो मैं आमतौर पर सभी त्रुटि लॉगिंग बंद कर देता हूं। क्या सीआई त्रुटि लॉगिंग फ़ंक्शंस को अभी भी काम करेगा यदि मैं त्रुटि रिपोर्टिंग को किसी को भी सेट करता हूं? – samxli