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;
            }
        }