Отправить письмо от Эльмы?

Кто-нибудь использует Elmah для отправки исключений по электронной почте? У меня настроено ведение журнала Elmah через SQL Server, и я могу просматривать страницу ошибок через страницу Elmah.axd, но я не могу заставить работать компонент электронной почты. Идея состоит в том, чтобы получать уведомление по электронной почте, чтобы мы могли быстрее реагировать на исключения. Вот мой файл web.config (ненужные разделы опущены), в котором все конфиденциальные данные заменены * * *. Несмотря на то, что я указываю сервер для подключения, должна ли служба 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 = "[email protected]"
           to = "[email protected]"
           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>
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
87
0
33 055
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я сам использовал Elmah в этой конфигурации, и мне пришлось настроить сервер с SMTP локально. Это простая установка на локальном сервере IIS. Это должно помочь.

Хороший момент выше, вам нужен модуль errorMail, НО, если вы не используете удаленный SMTP-сервер, вам нужен SMTP локально, просто для пояснения.

Ответ принят как подходящий

Вам нужен ErrorMail httpModule.

добавьте эту строку в раздел

<add name = "ErrorMail" type = "Elmah.ErrorMailModule, Elmah" />

Если вы используете удаленный SMTP-сервер (который, похоже, и есть), вам не нужен SMTP на сервере.

Есть ли способ настроить ежедневное задание для отправки консолидированных ошибок?

Chaitanya Gadkari 10.05.2017 12:27

Да, если вы не используете удаленный SMTP-сервер, вам необходимо настроить SMTP-сервер локально. Вы также можете настроить электронную почту для elmah в web.config следующим образом:

<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 может подключиться к стандартному разделу mailSettings. Атрибут smtpPort = "0" довольно странный.

Ben Mills 09.04.2012 18:57

smtpPort = "0", похоже, не нужен, так как он использует порт, указанный в system.net; при работе с сервером разработки мне пришлось установить useSsl = "false", иначе сервер выйдет из строя (вероятно, из-за того, что я не настроил SSL)

Răzvan Flavius Panda 02.10.2013 13:34

Я обнаружил, что порядок элементов имеет значение. Указание system.net ПОСЛЕ СБОЯ elmah. Система ELMAH действовала так, как будто почтовый сервер не был определен. Размещение system.net первым заставило его работать.

Mark Meuer 18.11.2015 22:06

Если я использую вышеуказанные настройки, любой, кто имеет доступ к файлу web.config, будет знать мой пароль электронной почты, верно?

Unbreakable 08.05.2017 07:08

Другие вопросы по теме