我为我的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方法时,它就不再发送电子邮件了。没有抛出异常。垃圾邮件文件夹中无任何内容。
这个问题可能是什么?有没有人有过这样的东西?
发布于 2017-07-20 15:35:45
我找到了我的问题的答案。我只创建了一次MimeMessage,然后每次都添加到相同的消息中。现在,每次我调用send时,我都会创建一个新的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());
}
}
}https://stackoverflow.com/questions/45207636
复制相似问题