2008-10-13 11 views

Odpowiedz

6

Cóż, to zabawne, piszę teraz własną odpowiedź.

Co zrobiłem, użyłem kodu źródłowego entlib.

ciągu Microsoft.Practices.EnterpriseLibrary.Logging i Microsoft.Practices.EnterpriseLibrary.Logging.TraceListenerData

znalazłem klas, które potrzebne.

  • Kopiowanie EmailMessage.cs do EmailMessageHTML.cs
  • Kopiowanie EmailTraceListener.cs do EmailHTMLTraceListener.cs
  • Kopiowanie EmailTraceListenerData.cs do EmailHTMLTraceListenerData.cs

Put tych klas w swoim własnym nowej biblioteki Projekt.

ciągu EmailMessageHTML zmianę wszystkich konstruktorów, aby dopasować nową nazwę klasy i ponad Dodaj następujący wiersz do metody:

protected MailMessage CreateMailMessage() 
      { 
       ..... 

       message.IsBodyHtml = true; 
       ..... 

       return message; 
      } 

potem musiałem skorzystać z tej nowej klasy EmailMessageHTML w EmailHTMLTraceListener (zmiana EmailMessage do EmailMessageHTML) i również użyj tego EmailHTMLTraceListener w nowym pliku EmailHTMLTraceListenerData.cs.

skompilować ten nowy projekt i niż to wykorzystać w swojej config następująco (przykład)

<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> 

i dodać ważną kategorię do logowania to oczywiście:

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

Oczywiście trzeba jakiś dokument HTML, aby zalogować się za pomocą EntLib. Zostawiam to jako ćwiczenie dla czytelnika. I rzeczywiście! Dostaję ładną wiadomość e-mail w formacie HTML teraz za każdą rezerwację outofbalance, którą Twoi klienci robią na stronie ...

+1

Wielkie dzieło Hace. Zrobiłem powyższą pracę jako przykład i poszłam i zaimplementowałem to dokładnie. napisał tutaj kroki. http://trycatch.me/implementing-html-formatowany-email-in-the-enterprise-library-logging-block/ –

+0

@EoinCampbell http://trycatch.me/implementing-html-formatowany-email-inhe -enterprise-library-logging-block/nie znaleziono –

Powiązane problemy