2009-01-20 5 views
13

भेजता है, मैं चाहता हूं कि मेरा एएसपीनेट एमवीसी फ्रेमवर्क सिस्टम हर बार एक निश्चित कार्रवाई (एक निश्चित नियंत्रक के अंदर) को ई-मेल भेजने के लिए निकाल दिया जाए। क्या यह पूरा करने के लिए कोई तीसरी पार्टी पुस्तकालय या .NET मानक तरीके हैं?एएसपीएनटी एमवीसी फ्रेमवर्क, स्वचालित रूप से ई-मेल

उत्तर

21

System.Net.Mail का उपयोग करने के लिए एक और अप टू डेट विधि होगी - यह System.Web.Mail के लिए 2.0 प्रतिस्थापन है।

ऐसा कुछ, जिसे बेसकंट्रोलर से कहा जाता है (यदि अन्य नियंत्रक हैं जिन्हें इसकी आवश्यकता है) प्रश्न में वास्तविक नियंत्रक।

मैं एक स्थिर वर्ग के अंदर निम्नलिखित कोड सर्वर से सरल सादे पाठ आइटम मेलिंग संभाल करने के लिए है:

internal static void SendEmail(MailAddress fromAddress, MailAddress toAddress, string subject, string body) 
{ 
    var message = new MailMessage(fromAddress, toAddress) 
         { 
          Subject = subject, 
          Body = body 
         }; 

    var client = new SmtpClient("smtpServerName"); 
    client.Send(message); 
} 

जाहिर है, तो आप शायद कुछ वहाँ में आदि से निपटने त्रुटि चाहते हैं - भेजें एक अपवाद फेंक कर सकते हैं उदाहरण के लिए यदि सर्वर कनेक्शन से इनकार कर रहा है।

3

एक बेसकंट्रोलर बनाएं जिससे आपके सभी अन्य नियंत्रकों को विरासत मिलती है। बेसकंट्रोलर में OnActionExecuted विधि को ओवरराइड करें और ईमेल भेजने के लिए अपना कोड डालें।

public class BaseController : Controller 
{ 
    protected override void OnActionExecuted(ActionExecutedContext filterContext) 
    { 
     // Send mail here 
     base.OnActionExecuted(filterContext); 
    } 
} 
1

अच्छी तरह से .NET का उपयोग करके एक ईमेल भेजने में मुश्किल नहीं है। आप सिर्फ अपनी कार्रवाई के अंदर से मेल भेज सकते हैं।

लेकिन, मुझे लगता है कि हम यहां लॉगिंग के बारे में कुछ बात करते हैं, और लॉगिंग के लिए 3 वें पार्टी पुस्तकालयों की एक श्रृंखला है। मुझे पता है कि Log4Net नामक एक है।

इनमें से अधिकतर लॉगिंग फ्रेमवर्क यह कॉन्फ़िगर करना संभव बनाता है कि लॉग कैसे संग्रहीत किए जाते हैं, और यह कुछ भी लॉग इन करते समय ईमेल भेजने के लिए एक सेटिंग भी संभव है।

लेकिन आपके परिदृश्य में, यह केवल एक सादा सरल मेल फ़ंक्शन लिखता है, जो मेल भेजता है, जब उपयोगकर्ता कार्रवाई में प्रवेश करता है। आप इसे देख सकते हैं: http://www.developer.com/net/asp/article.php/3096831 - हालांकि यह .NET - webforms का उपयोग कर मेल भेजने का एक डेमो है, लेकिन बुनियादी चीजें अभी भी एमवीसी पर लागू होती हैं।

2
अन्य System.Net.Mail वर्गों के साथ

SmtpClient कक्षा आसानी से किसी भी नेट कार्यक्रम से उपयोग किया जाता है मेल भेजने के लिए। आपको बस इसे एक उपलब्ध और तैयार SMTP सर्वर पर इंगित करने की आवश्यकता है।

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