Ну, это смешно, сейчас я пишу свой собственный ответ.
Я использовал исходный код entlib.
В
Microsoft.Practices.EnterpriseLibrary.Logging и
Microsoft.Practices.EnterpriseLibrary.Logging.TraceListenerData
Я нашел нужные мне занятия.
- Скопируйте EmailMessage.cs в EmailMessageHTML.cs
- Скопируйте EmailTraceListener.cs в EmailHTMLTraceListener.cs
- Копирование EmailTraceListenerData.cs в EmailHTMLTraceListenerData.cs
Поместите эти классы в свой новый библиотечный проект.
В EmailMessageHTML измените все конструкторы, чтобы они соответствовали новому имени класса, а затем ДОБАВЬТЕ следующую строку для метода:
protected MailMessage CreateMailMessage()
{
.....
message.IsBodyHtml = true;
.....
return message;
}
После этого мне пришлось использовать этот новый класс EmailMessageHTML в EmailHTMLTraceListener (измените EmailMessage на EmailMessageHTML), а также использовать этот EmailHTMLTraceListener в новом файле EmailHTMLTraceListenerData.cs.
Скомпилируйте этот новый проект и используйте его в вашей конфигурации следующим образом (пример)
<loggingConfiguration
name="Logging Application Block"
tracingEnabled="true"
defaultCategory=""
logWarningsWhenNoCategoriesMatch="true">
<listeners>
<add toAddress="your@emailgoes.here"
fromAddress="yourserveraddress@goes.here"
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>
и добавьте действительную категорию, чтобы войти, конечно:
<add switchValue="All" name="OutOfBalanceBooking">
<listeners>
<add name="Database Trace Listener"/>
<add name="EmailHTML TraceListener"/>
</listeners>
</add>
Конечно, вам нужен HTML-документ, чтобы войти в EntLib. Я оставляю это как упражнение для читателя.
И действительно! Теперь я получаю хорошее электронное письмо по электронной почте для каждого забронированного дисбаланса, который клиенты совершают на сайте ...