Wiem, jak wysyłać wiadomości za pomocą biblioteki Microsoft Enterprise Library 2.0 za pomocą formatyzatora tekstu. Ale te e-maile są zawsze w postaci zwykłego tekstu. Czy jest jakiś sposób, aby z entlib 2.0 wysyłać te wiadomości w formacie HTML?Jak wysłać wiadomość e-mail w formacie HTML za pomocą Microsoft Enterprise Library?
Odpowiedz
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 ...
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/ –
@EoinCampbell http://trycatch.me/implementing-html-formatowany-email-inhe -enterprise-library-logging-block/nie znaleziono –