我正在尝试使用 Serilog 的电子邮件接收器作为简单控制台应用程序的一部分。这个应用程序的生命周期很短:它检查数据库并用新数据更新订阅者。如果发生错误,我想发送电子邮件。
问题是,如果我不将 Thread.Sleep 放在应用程序的末尾,则不会发送电子邮件。
有没有办法清除电子邮件队列并强制尽快发送电子邮件?
我的代码是:
Log.Logger = new LoggerConfiguration()
.WriteTo.ColoredConsole()
.WriteTo.EventLog("LOGSOURCE", restrictedToMinimumLevel: LogEventLevel.Warning)
.WriteTo.Email(connectionInfo: new EmailConnectionInfo()
{
EmailSubject = "App error",
ToEmail = "support@company.com",
MailServer = "smtp.office365.com",
NetworkCredentials = new NetworkCredential("sender@company.com", "Password"),
Port = 587,
FromEmail = "sender@company.com",
EnableSsl = false
},
batchPostingLimit: 1,
restrictedToMinimumLevel: LogEventLevel.Error)
.CreateLogger();
Log.Error("Error message");
任何帮助表示赞赏