MailKit SmtpClient Send 方法第一次有效,但在使用 FluentScheduler 之后无效
MailKit SmtpClient Send method works for first time but no after that while using FluentScheduler
我为我的 Web 应用程序创建了后台任务,如果有任何问题,它会每 15 分钟向客户端发送一封电子邮件。我正在使用 Gmail 发送电子邮件。
public virtual void Send(string body, string attachment)
{
message.From.Add(GetFromAddress());
message.To.AddRange(GetToAddresses());
message.Subject = "Error";
message.Body = CreateBody(body, attachment);
using (var SmtpClient = new SmtpClient())
{
try
{
if (!SmtpClient.IsConnected)
{
ConnectToGmail(SmtpClient);
}
SmtpClient.Send(message);
SmtpClient.Disconnect(true);
}
catch (Exception ex)
{
logger.Error(ex.ToString());
}
}
}
当我 运行 项目然后第一次进入发送方法然后发送电子邮件。但是下次它到达 Send 方法时,它就不再发送电子邮件了。没有抛出异常。垃圾邮件文件夹中没有任何内容。
这可能是什么问题?有人遇到过这样的事情吗?
我找到了问题的答案。我创建了一次 MimeMessage,然后每次都添加到同一条消息中。现在每次调用发送时我都会创建一个新的 MimeMessage,现在它可以工作了。
public virtual void Send(string body, string attachment)
{
var message = new MimeMessage();
message.From.Add(GetFromAddress());
message.To.AddRange(GetToAddresses());
message.Subject = "Kiosk error";
message.Body = CreateBody(body, attachment);
using (var SmtpClient = new SmtpClient())
{
try
{
if (!SmtpClient.IsConnected)
{
ConnectToGmail(SmtpClient);
}
SmtpClient.Send(message);
SmtpClient.Disconnect(true);
}
catch (Exception ex)
{
logger.Error(ex.ToString());
}
}
}
我为我的 Web 应用程序创建了后台任务,如果有任何问题,它会每 15 分钟向客户端发送一封电子邮件。我正在使用 Gmail 发送电子邮件。
public virtual void Send(string body, string attachment)
{
message.From.Add(GetFromAddress());
message.To.AddRange(GetToAddresses());
message.Subject = "Error";
message.Body = CreateBody(body, attachment);
using (var SmtpClient = new SmtpClient())
{
try
{
if (!SmtpClient.IsConnected)
{
ConnectToGmail(SmtpClient);
}
SmtpClient.Send(message);
SmtpClient.Disconnect(true);
}
catch (Exception ex)
{
logger.Error(ex.ToString());
}
}
}
当我 运行 项目然后第一次进入发送方法然后发送电子邮件。但是下次它到达 Send 方法时,它就不再发送电子邮件了。没有抛出异常。垃圾邮件文件夹中没有任何内容。
这可能是什么问题?有人遇到过这样的事情吗?
我找到了问题的答案。我创建了一次 MimeMessage,然后每次都添加到同一条消息中。现在每次调用发送时我都会创建一个新的 MimeMessage,现在它可以工作了。
public virtual void Send(string body, string attachment)
{
var message = new MimeMessage();
message.From.Add(GetFromAddress());
message.To.AddRange(GetToAddresses());
message.Subject = "Kiosk error";
message.Body = CreateBody(body, attachment);
using (var SmtpClient = new SmtpClient())
{
try
{
if (!SmtpClient.IsConnected)
{
ConnectToGmail(SmtpClient);
}
SmtpClient.Send(message);
SmtpClient.Disconnect(true);
}
catch (Exception ex)
{
logger.Error(ex.ToString());
}
}
}