/// <inheritdoc/> public async Task ConfigureAsync(Smtp smtp) { Smtp settings = smtp.Clone(); // smtpOptions has default value if (settings.Equals(new()) is false) { settings.Password = string.Empty; using var passwordHasher = new PasswordHasher(); settings.Password = passwordHasher.Decrypt(smtp.Password, settings); // Only run if new settings are different if (this.smtp.Equals(settings) is false) { if (await ConnectAsync(settings)) { IsConfigured = true; this.smtp = settings; mailboxAddress = new MailboxAddress(settings.Name, settings.Address); logger.LogInformation("Email service was configured successfully."); } } }