Пример #1
0
        /// <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.");
                    }
                }
            }