2010-09-03 7 views
9

भेज रहा है मैं अपने asp.net mvc 2 एप्लिकेशन से ईमेल भेजने के लिए postmarkapp.com देख रहा हूं जो उनके द्वारा प्रदान की जाने वाली .NET लाइब्रेरी का उपयोग करके: postmark-dotnet लाइब्रेरीईमेल निर्माण के लिए एएसपी.NET एमवीसी पृष्ठभूमि धागे और

उनके documentation में वे उल्लेख करते हैं कि ईमेल भेजने/अनुलग्नक भेजने में कुछ समय लग सकता है और पृष्ठभूमि कार्य में ऐसा करने में बेहतर होता है। मेरे आवेदन के लिए मैं 10 से 500 वैयक्तिकृत ईमेल से कहीं भी अपने उपयोगकर्ताओं को बैच में संलग्नक के साथ कहीं भी भेज सकता हूं।

  • व्यवस्थापक उपयोगकर्ता है कि निर्माण और ASP.Net MVC में इन ईमेल भेजने शुरू की के लिए एक गैर अवरुद्ध तरीके से इस पृष्ठभूमि प्रसंस्करण करने का सबसे अच्छा तरीका क्या है?

  • क्या होता है यदि वे 500 उपयोगकर्ताओं को "ईमेल बनाएं और भेजें" पर क्लिक करें और उस प्रक्रिया से पहले ब्राउज़र को बंद कर दें?

किसी भी मदद के लिए धन्यवाद! ASP.Net MVC पर नए

उत्तर

17

आप एक नया धागा अंडे और इस थ्रेड के मेल भेज सकता है:

[HttpPost] 
[Authorize(Roles = "Administrator")] 
public ActionResult SendMails() 
{ 
    new Thread(() => 
    { 
     // Send the emails here 
    }).Start(); 
    return View(); 
} 

उपयोगकर्ता ब्राउज़र जब तक यह पूरा करता है या AppDomain बंद हो जाता है इस सूत्र का प्रदर्शन जारी रहेगा बंद कर देता है, तो । कार्रवाई तुरंत एक दृश्य वापस आ जाएगी और यह ब्लॉक नहीं होगा।

यह भी एक अच्छा विचार हो सकता है कि डेटाबेस में कुछ ध्वज सेट करना एक अच्छा विचार हो सकता है कि ईमेल भेजने का एक ऑपरेशन चल रहा है ताकि यदि व्यवस्थापक बटन पर दो बार क्लिक करता है तो आपके उपयोगकर्ता बहुत सारे मेल से नहीं मिलते हैं।

यदि आप अधिक मजबूत समाधान चाहते हैं तो आप MSMQ पर एक नज़र डाल सकते हैं। और here's a tutorial जो आपको जल्दी से शुरू करना चाहिए।

+0

कार्य> थ्रेड (यदि .NET 4) – Necros

+2

नियंत्रक विधि में ईमेल (खुला धागा) भेजने के लिए यह एक बुरा अभ्यास है। यह एक स्थिर वर्ग हो सकता है !! – vlukham

+0

यह एक बुरा अभ्यास क्यों है? –

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