Отправить письмо от Elmah?
кто-нибудь использует Elmah для отправки исключений по электронной почте? У меня есть журнал Elmah, настроенный через SQL Server, и вы можете просматривать страницу ошибок через Elmah.страница axd, но я не могу заставить компонент электронной почты работать. Идея здесь заключается в том, чтобы получить уведомление по электронной почте, чтобы мы могли быстрее реагировать на исключения. Вот моя паутина.конфигурация (ненужные разделы опущены), со всеми конфиденциальными данными, замененными на * * *. Несмотря на то, что я указываю сервер для подключения, должна ли служба SMTP быть работает на локальной машине?
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="elmah">
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah"/>
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah"/>
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah"/>
</sectionGroup>
</configSections>
<appSettings/>
<connectionStrings>
<add name="elmah-sql" connectionString="Data Source=***;Initial Catalog=***;Persist Security Info=True;User ID=***;Password=***" />
</connectionStrings>
<elmah>
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="elmah-sql" >
</errorLog>
<errorMail from="test@test.com"
to="test@test.com"
subject="Application Exception"
async="false"
smtpPort="25"
smtpServer="***"
userName="***"
password="***">
</errorMail>
</elmah>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="CustomError.aspx">
<error statusCode="403" redirect="NotAuthorized.aspx" />
<!--<error statusCode="404" redirect="FileNotFound.htm" />-->
</customErrors>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
</httpModules>
</system.web>
</configuration>
3 ответа:
вам нужен errormail httpModule.
добавьте эту строку в раздел
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
Если вы используете удаленный SMTP-сервер (который, похоже, у вас есть), вам не нужен SMTP на сервере.
да, если вы не используете удаленный SMTP-сервер, необходимо настроить SMTP-сервер локально. Вы также можете настроить электронную почту для elmah в интернете.конфигурация следующим образом:
<configSections> <sectionGroup name="elmah"> <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah"> </sectionGroup> </configSections> <elmah> <errorMail from="from Mail Address" to="to mail address" async="true" smtpPort="0" useSsl="true" /> </elmah> <system.net> <mailSettings> <smtp deliveryMethod ="Network"> <network host="smtp.gmail.com" port="587" userName="yourgmailEmailAddress" password="yourGmailEmailPassword" /> </smtp> </mailSettings> </system.net>
Я сам использовал Elmah в этой конфигурации, и мне пришлось настроить сервер с SMTP локально. Это прямая установка на локальном сервере IIS. Это должно сделать трюк.
хорошая точка выше, вам нужен модуль errorMail, но если вы не используете удаленный SMTP-сервер, вам нужен SMTP локально, просто чтобы уточнить.