Логирование активности SmtpClient

Логирование активности используется для отладки, а также для сбора и анализа рабочей информации о клиенте SMTP.

Включение логирования активности с использованием файла appsettings.json

ПРИМЕЧАНИЕ: Этот вариант предпочтителен для приложений .NET Core.

Логирование в SmtpClient можно включить с помощью следующих шагов и примеров кода:

  1. Добавьте файл конфигурации appsettings.json в проект C#, если он ранее не был добавлен.

  2. Убедитесь, что в файле проекта содержатся следующие строки в разделе ItemGroup.

       <Content Include="appsettings.json">
           <CopyToOutputDirectory>Always</CopyToOutputDirectory>
       </Content>
    
  3. Затем добавьте следующее содержимое в файл appsettings.json.

       {
         "SmtpDiagnosticLog": "smtp.log",
         "SmtpDiagnosticLog_UseDate": true
       }
    

Два вышеупомянутых свойства:

  • SmtpDiagnosticLog - указывает относительный или абсолютный путь к файлу журнала.

  • SmtpDiagnosticLog_UseDate - указывает, следует ли добавлять строковое представление текущей даты в имя файла журнала.

Включение логирования активности в коде программы

Вы также можете включить логирование сразу в коде.

ПРИМЕЧАНИЕ: даже если вы уже включили логирование, используя конфигурационные файлы, этот вариант будет применен.

Логирование в SmtpClient можно включить с помощью следующих шагов и примеров кода:

  1. Создайте SmtpClient.
  2. Установите путь к файлу журнала с помощью свойства LogFileName.
  3. Установите свойство UseDateInLogFileName, если это необходимо.
   using (var client = new SmtpClient("your smtp server"))
   {
       // Установите имя пользователя, пароль, порт и параметры безопасности
       client.Username = "your username";
       client.Password = "your password";
       client.Port = 465;
       client.SecurityOptions = SecurityOptions.SSLImplicit;
   
       // Установите путь к файлу журнала с помощью свойства LogFileName.
       client.LogFileName = @"C:\Aspose.Email.Smtp.log";
       
       // Установите свойство UseDateInLogFileName, если это необходимо.
       client.UseDateInLogFileName = false;
   
       var eml = new MailMessage("from address", "to address", "this is a test subject", "this is a test body");
   
       client.Send(eml);
   }

Включение логирования активности с использованием файла App.config

Активность клиента SMTP может быть зарегистрирована путем изменения configSections в конфигурационном файле. Логирование диагностики можно выполнить с помощью следующих шагов:

  1. Добавьте группу секций с названием “applicationSettings”.
  2. Добавьте секцию с названием “Aspose.Email.Properties.Settings”.
  3. Включите настройку с именем SmtpDiagonosticLog, где имя файла определяется в applicationSettings/Aspose.Email.Properties.Settings.

Вот пример приложения на основе форм, которое использует SmtpClient для отправки электронной почты. Вся эта активность фиксируется путем изменения файла App.config. Создайте форму приложения с одной кнопкой. Добавьте следующий код для клика по кнопке:

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Build message
MailMessage message = new MailMessage();
// Set email address for From and TO
message.From = "userFrom@gmail.com";
message.To = "userTo@gmail.com";
// Set Subject and Body
message.Subject = "Appointment Request";
message.Body = "Test Body";
// Initialize SmtpClient and Set valid user name and password, Port and SecurityOptions
SmtpClient client = new SmtpClient();
client.Host = "smtp.gmail.com";
client.Username = "userFrom";
client.Password = "***********";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
try
{
client.Send(message);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
  1. Добавьте ссылку на Aspose.Email.
todo:image_alt_text
  1. Добавьте файл App.Config и измените его так, чтобы содержимое файла выглядело следующим образом:
For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Aspose.Email.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<Aspose.Email.Properties.Settings>
<setting name="SmtpDiagnosticLog" serializeAs="String">
<value>Aspose.Email.SMTP.log</value>
</setting>
</Aspose.Email.Properties.Settings>
</applicationSettings>
</configuration>
  • Для C# .NET используйте следующий вариант:
todo:image_alt_text
  • Для VB .NET используйте следующий вариант:
todo:image_alt_text   todo:image_alt_text
todo:image_alt_text
  1. Запустите код и затем проверьте папку отладки. Будет сгенерирован следующий файл.
todo:image_alt_text