Exemplo n.º 1
0
        /// <summary>
        /// Adds SMTP EMail sender to services.
        /// </summary>
        public static IServiceCollection AddSmtpEMailSender(
            this IServiceCollection services,
            ISmtpEMailOptions options,
            bool useAsDefaultSender = true)
        {
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            options.AssertValid();

            services.TryAddSingleton(options);
            services.TryAddSingleton <ISmtpEMailSender, SmtpEMailSender>();

            if (useAsDefaultSender)
            {
                services.TryAddSingleton <IEMailSender>(s => s.GetRequiredService <ISmtpEMailSender>());
            }

            return(services);
        }
Exemplo n.º 2
0
        public SmtpEMailSender(
            ISmtpEMailOptions smtpEMailOptions,
            ILogger <SmtpEMailSender> logger)
        {
            _emailOptions = smtpEMailOptions ?? throw new ArgumentNullException(nameof(smtpEMailOptions));
            _emailOptions.AssertValid();

            _logger = logger ?? throw new ArgumentNullException(nameof(logger));
        }
        /// <summary>
        /// Validates an <see cref="ISmtpEMailOptions"/>.
        /// </summary>
        /// <returns></returns>
        public static IReadOnlyCollection <ConfigurationValidationError> Validate(this ISmtpEMailOptions options, string?prefix = null)
        {
            var errors = new ConfigurationValidationErrorCollection(prefix);

            errors.AddErrorIf(String.IsNullOrWhiteSpace(options.SmtpServer), nameof(options.SmtpServer), "can't be null or empty");
            errors.AddErrorIf(String.IsNullOrWhiteSpace(options.SmtpLogin), nameof(options.SmtpLogin), "can't be null or empty");
            errors.AddErrorIf(String.IsNullOrWhiteSpace(options.SmtpPassword), nameof(options.SmtpPassword), "can't be null or empty");
            errors.AddErrorIf(String.IsNullOrWhiteSpace(options.EMailFrom), nameof(options.EMailFrom), "can't be null or empty");
            errors.AddErrorIf(String.IsNullOrWhiteSpace(options.SenderName), nameof(options.SenderName), "can't be null or empty");
            errors.AddErrorIf(options.SmtpPort <= 0, nameof(options.SmtpPort), "can't be less than 1");

            return(errors);
        }