ruby on rails - how to raise/rescue from ActionMailer deliver method -
मैं निम्नलिखित विधि से ईमेल भेज रहा हूं:
class कम्युनिकेशन & lt; ActionMailer :: बेस डीईएफ़ संदेश (उप, msg, लोग) विषय उप बीसीसी लोगों को 'my_email.s@gmail.com' से भेजा गया समय। समय शरीर: ग्रीटिंग = & gt; Msg end end
बीसीसी में 4 या 5 ईमेल पते हैं
अपने परीक्षण के दौरान मैंने दो चीजों को देखा है:
- यह कि यदि ईमेल में से कोई भी एक वास्तविक ईमेल नहीं है (उदाहरण के लिए
fake_email_no_domain
) यह किसी भी प्राप्तकर्ता को ईमेल नहीं भेजता है - यदि बीसीसी सूची में एक बुरा ईमेल पता है (उदाहरण के लिए
nonexistent@gmail.com
), तो यह अन्य को ईमेल भेजता है प्राप्तकर्ता लेकिन अभी भी एक त्रुटि लॉग करने के लिए फेंकता है।
दोनों स्थितियों में त्रुटि डाली गई है:
http: // localhost पर पुनर्निर्देशित: 3000 / पूर्ण 2601ms (डीबी: 1) | 302 पाया [http: // localhost / notifications] [2010-08-04 00:49:00] त्रुटि एर्रो :: ECONNRESET: पीअर / यूआरएल / लोकल / लिब / रुबी / 1.9.1 / व्हाइब्रिक / एचपीएसएर्वर द्वारा कनेक्शन रीसेट। आरबी: 56: में `ईओफ़? ' /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:56:in 'चलाने' /usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in 'में ब्लॉक Start_thread '
प्रश्न:
- क्या कोई तरीका है जो मैं इस त्रुटि को पकड़ सकता हूं? मैं उपयोगकर्ता को एक
फ्लैश [: नोटिस]
दिखा रहा हूं और मुझे यह बताना है कि कुछ बुरा हुआ - अगर मेरी बीसीसी की सूची में 5 ईमेल हैं और वास्तव में केवल 4 ईमेल हैं भेजा क्योंकि 5 वां नंबर कोई भी ईमेल नहीं था, उसके बाद सब कुछ किया जा सकता है कि मुझे कितने ईमेल भेजे गए थे? मैं उस नंबर को अपने
फ्लैश [: नोटिस]
में दिखाना चाहता हूं। मुझे वास्तव में वितरण की पद्धति को पुनरावृत्ति में बुलाकर, थोक के रूप में भेजने के द्वारा इस संख्या को प्राप्त कर सकते हैं, लेकिन फिर भी मैं एक ईमेल नहीं भेजा गया है, तो मैं गिनती में वृद्धि नहीं करना चाहता।
config / environment / develop.rb में निम्नलिखित पंक्ति को जोड़ या अनुक्रमित करें
और अपने सर्वर को पुनरारंभ करें।
# परवाह नहीं है कि मेलर config.action_mailer.raise_delivery_errors = false
नहीं भेज सकता है I मान लें कि आप विकास
के लिए उत्पादन
को config / environment / production.rb
Comments
Post a Comment