private void SendNextMail() { if (_smtpCfg.RitardoSecondiInvio > 0 && _lastSendTime.HasValue && _lastSendTime.Value.AddSeconds(_smtpCfg.RitardoSecondiInvio) > DateTime.Now) { return; } var mail = _appSvc.GeNextMailToSend(_job.JobId); if (mail == null) { StopJob(); } else { mail.UltimoTentativoInvio = DateTime.Now; try { _mailer.SendEmail(mail.Address, mail.Nome, _mailToSend.Subject, _mailToSend.HtmlBody, _mailToSend.PlaintTextBody); mail.State = EMailState.InviataConSuccesso; } catch (Exception exc) { mail.State = EMailState.ErroreInInvio; mail.MessaggioErrore = exc.Message; } _appSvc.ChangeMailState(mail); OnSentMailEvent?.Invoke(this, new SentMailEventArgs() { MailSend = mail }); _lastSendTime = DateTime.Now; } }