2008-09-11 12 views
5

मैं वर्तमान में एक डेटरेडर के माध्यम से लूपिंग कर रहा हूं और System.Net.Mail.SmtpClient's Send() विधि को कॉल कर रहा हूं। इसके साथ समस्या यह है कि यह धीमा है। प्रत्येक ईमेल को भेजने के लिए लगभग 5-10 सेकंड लगते हैं (यह संभव है कि यह मेरे होस्ट के साथ सिर्फ एक मुद्दा है)। मैं अपने web.config फ़ाइल में executionTimeout डिफ़ॉल्ट ओवरराइड करना पड़ा इस तरह (90 सेकंड के लिए यह चूक):एएसपी.नेट में ईमेल के बड़े बैच भेजने का सबसे अच्छा तरीका क्या है?

<httpRuntime executionTimeout="3000" /> 

एक चेतावनी: मैं एक साझा मेजबान पर हूँ, इसलिए मुझे नहीं लगता कि यह संभव है है मेरे लिए PickupDirectoryFromIis विकल्प का उपयोग करके भेजने के लिए (कम से कम, जब मैंने इसे चालू किया तो मुझे त्रुटियां मिलीं)।

उत्तर

6

आप मेल को असीमित भेज सकते हैं। इस तरह टाइमआउट को आपके भेजने में बाधा नहीं डालना चाहिए।

इस आलेख से आपको इसकी शुरुआत करने में मदद करनी चाहिए: Sending Emails Asynchronously in C#

यहाँ एक और तरीका है: http://www.vikramlakhotia.com/Sending_Email_asynchronously_in_AspNet_20.aspx

और बंद पाठ्यक्रम वहाँ कई वाणिज्यिक ग्राहकों के लिए उपलब्ध हैं, लेकिन केवल एक है कि मैं कोशिश की है और सिफारिश कर सकते हैं http://www.aspnetemail.com/

0

है निश्चित रूप से एक पृष्ठभूमि कार्यकर्ता ही उसे बंद अंडे प्रक्रिया ताकि वे असीमित रूप से बाहर जा सकें।

बीटीडब्ल्यू, प्रति ई-मेल 5-10 सेकंड मुझे धीमा लगता है। मेरे सर्वर पर यह प्रति सेकंड एक ई-मेल की केवल भिन्नता लेता है।

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

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