public StartupCheckResult Run()
        {
            if (this._mailSettings.SkipTest)
            {
                return(StartupCheckResult.Success("SkipTest is set - mail check is being skipped."));
            }

            if (this._mailSettings == null || this._mailSettings.Port == 0 || string.IsNullOrEmpty(this._mailSettings.FromAddress))
            {
                return(StartupCheckResult.Success("SMTP settings are not set"));
            }

            try
            {
                // Using MailKit we can simple connect and authenticate without sending mail
                using (SmtpClient smtpClient = this.CreateConnectedSmtpClient())
                {
                    smtpClient.NoOp();
                }
            }
            catch (Exception ex)
            {
                return(StartupCheckResult.Failure(
                           $"Unable to connect to SMTP server at {this._mailSettings.Host}:{this._mailSettings.Port}", ex));
            }

            return(StartupCheckResult.Success(
                       $"Connected to SMTP server at {this._mailSettings.Host}:{this._mailSettings.Port}"));
        }
 public void NoOp()
 {
     _smtpClient.NoOp();
 }