2008-10-13 11 views
7

मुझे पता है कि एक टेक्स्ट फॉर्मेटर का उपयोग कर माइक्रोसॉफ्ट एंटरप्राइज़ लाइब्रेरी 2.0 का उपयोग कर मेल कैसे भेजना है। लेकिन ये ईमेल हमेशा सादे पाठ में रहते हैं। क्या इन मेलों को HTML प्रारूप में भेजने के लिए entlib 2.0 के साथ कोई तरीका है?माइक्रोसॉफ्ट एंटरप्राइज़ लाइब्रेरी के साथ एचटीएमएल प्रारूप में ईमेल कैसे भेजें?

उत्तर

6

वैसे यह मजाकिया है, अब मैं अपना जवाब लिख रहा हूं।

मैंने जो किया वह एंटरलिब के स्रोत कोड का उपयोग किया गया था।

Microsoft.Practices.EnterpriseLibrary.Logging और Microsoft.Practices.EnterpriseLibrary.Logging.TraceListenerData

के भीतर मैं वर्गों है कि मैं जरूरत पाया।

  • EmailMessageHTML.cs को कॉपी EmailMessage.cs
  • EmailHTMLTraceListener.cs को कॉपी EmailTraceListener.cs EmailHTMLTraceListenerData.cs को
  • कॉपी EmailTraceListenerData.cs

अपनी खुद की नई लाइब्रेरी में इन कक्षाओं में रखो परियोजना।

EmailMessageHTML के भीतर नई classname मिलान करने के लिए और से विधि में निम्नलिखित पंक्ति जोड़ सब कंस्ट्रक्टर्स बदलने के लिए:

protected MailMessage CreateMailMessage() 
      { 
       ..... 

       message.IsBodyHtml = true; 
       ..... 

       return message; 
      } 

उसके बाद, मैं EmailHTMLTraceListener में इस नए EmailMessageHTML वर्ग का उपयोग करने के (EmailMessageHTML को EmailMessage बदल) था और नई ईमेल HTMLTraceListenerData.cs फ़ाइल में इस ईमेल HTMLTraceListener का भी उपयोग करें।

इस नई परियोजना संकलित करें और से निश्चित रूप से करने के लिए इस लॉग इन करने के रूप में (उदाहरण के)

<loggingConfiguration 
name="Logging Application Block" 
tracingEnabled="true" 
defaultCategory="" 
logWarningsWhenNoCategoriesMatch="true"> 
    <listeners> 
     <add toAddress="[email protected]"   
     fromAddress="[email protected]" 
     subjectLineStarter="" 
     subjectLineEnder="My HTMLemailLogger" 
     smtpServer="localhost" smtpPort="25" 
     formatter="Text Formatter"       
     listenerDataType="MYLibrary.HTMLEmailLogger.EmailHTMLTraceListenerData, 
     MYLibrary.HTMLEmailLogger, Version=2.0.0.0, 
     Culture=neutral, 
     PublicKeyToken=null" 
     traceOutputOptions="None" 
     type="MYLibrary.HTMLEmailLogger.EmailHTMLTraceListener, 
     MYLibrary.HTMLEmailLogger, 
     Version=2.0.0.0, 
     Culture=neutral, 
     PublicKeyToken=null" 
     name="EmailHTML TraceListener"/> 
    </listeners> 
</loggingConfiguration> 

इस प्रकार अपने config में इस का उपयोग करें और एक मान्य श्रेणी जोड़ें:

<add switchValue="All" name="OutOfBalanceBooking"> 
    <listeners> 
     <add name="Database Trace Listener"/> 
     <add name="EmailHTML TraceListener"/> 
    </listeners> 
</add> 
बेशक

आप की जरूरत EntLib के साथ लॉग इन करने के लिए कुछ HTML दस्तावेज़। मैं इसे पाठक के लिए एक अभ्यास के रूप में छोड़ देता हूं। और वास्तव में! मुझे प्रत्येक आउटफैलेंस बुकिंग के लिए अब एक अच्छा HTML ईमेल मिलता है जो ग्राहक साइट पर बनाते हैं ...

+1

ग्रेट वर्क हेस। अपने काम को एक उदाहरण के रूप में ऊपर ले लिया और वास्तव में चला गया और लागू किया। यहां कदम उठाए। http://trycatch.me/implementing-html-formatted-emails-in-the-enterprise-library-logging-block/ –

+0

@EoinCampbell http://trycatch.me/implementing-html-formatted-emails-in-the -enterprise-पुस्तकालय-लॉगिंग-ब्लॉक/नहीं मिला –

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