public IEnumerable <ValidationResult> Validate() { var configurator = new SmtpConfigurator(); _configureSmtp(configurator); if (string.IsNullOrWhiteSpace(configurator.Options.Host)) { yield return(new ConfigurationValidationResult(ValidationResultDisposition.Failure, nameof(configurator.Options.Host), "Empty")); } if (string.IsNullOrWhiteSpace(configurator.Options.Username)) { yield return(new ConfigurationValidationResult(ValidationResultDisposition.Failure, nameof(configurator.Options.Username), "Empty")); } }
public SmtpFilter(Action <ISmtpConfigurator> configureSmtp) { var configurator = new SmtpConfigurator(); configureSmtp(configurator); _serverOptions = configurator.Options; var smtpClient = new SmtpClient(); _authenticationCompleted = smtpClient .ConnectAsync(configurator.Options.Host, configurator.Options.Port) .ContinueWith(_ => _smtpClient.AuthenticateAsync(configurator.Options.Username, configurator.Options.Password)) .ContinueWith(_ => { if (_serverOptions.NoOp.HasValue) { _noOpTimer = new Timer(state => _smtpClient.NoOp(), null, 0, (uint)_serverOptions.NoOp.Value.TotalMilliseconds); } return(Task.CompletedTask); }).Unwrap(); _smtpClient = smtpClient; }