Почему NLog не отправляет электронные письма? - PullRequest
0 голосов
/ 26 марта 2020
 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" autoReload="true" throwExceptions="false" internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<extensions>
  <add assembly="NLog.MailKit"/>
</extensions>

 <targets async="true">
<target name="errorLogger" xsi:type="Mail"
        smtpServer="mail.sample.com"
        smtpPort="3500"
        from="no-reply@mdg.com"
        to="example@demo.com"
        subject="test subject" />
</targets>
<rules>
   <logger name="EmailLogger" level="Warn" writeTo="errorLogger" />
  <logger name="EmailLogger" level="Error" writeTo="errorLogger" />
</rules>
</nlog>

C# код

private static Logger SendEmailLogger = LogManager.GetLogger("EmailLogger");
 if (exception != null)
                {
                    SendEmailLogger.Warn("Sending email from NLog");
                    SendEmailLogger.Error(exception, "Sending email from NLog");
                }

Я думаю, этого достаточно, чтобы отправить электронное письмо. Я создал пользовательские ошибки, такие как divbyzero и файл не найден но я не получаю никаких писем. Кто-нибудь может подсказать, что мне не хватает.

Я уже установил Nlog.mailkit из пакета Nuget. Внутренняя трассировка журнала enter image description here

Fusion ++ 1.1 Logs enter image description here

enter image description here

enter image description here

Ответы [ 2 ]

1 голос
/ 28 марта 2020

Звучит как локальная проблема с инструментами / средой. Попробуйте приложить усилия для очистки / перестройки решения:

Не удалось загрузить файл или сборку - работа на локальном, а не на производстве - ASP. net

Возврат к эксперименту с простым решением, которое имеет только один проект, и посмотреть, сможет ли он начать. Если это работает, затем медленно начинайте перемещать элементы из исходного проекта и смотрите, где он ломается (если он вообще ломается).

Если простое решение с одним проектом также не работает, то обязательно обновите его до последнюю версию Visual Studio (или переустановите) и попробуйте все возможные способы восстановления / сброса установки IIS Express.

Невозможно запустить веб-приложение на Windows 10 с использованием IIS Express

0 голосов
/ 27 марта 2020

Я вижу, что вы получаете сообщение "Не удалось загрузить файл, сборку или одну из ее зависимостей" для mailkit.dll

Это может иметь следующие причины:

  • Почтовый ящик. DLL не развернут.
  • Вы используете другую (сборочную) версию mailkit. Поскольку Mailkit dll имеет строгое имя / подписано, вы не можете легко изменить версию. Вам нужна bindingRedirect, или просто сохраняйте версию Mailkit во всем вашем решении одинаковой.

Проверка версии сборки DLL

Вы можете проверить версию сборки mailkit.dll следующим образом:

перетащите в VS2019:

enter image description here

Двойной щелчок по нейтральному:

enter image description here

...