/// <summary>Configures the mail template service.</summary> /// <param name="services">The services.</param> /// <param name="manager">The manager.</param> /// <returns></returns> public static IServiceCollection ConfigureMailTemplateService(this IServiceCollection services, ValidatingConfigurationManager manager) { // configure options and validators manager.ConfigureValidator(new MailTemplateOptionsValidator()); services.Configure <MailTemplateOptions>(manager, true); services.AddScoped <ITemplatingService, RazorLightTemplatingService>(); return(services); }
/// <summary>Configures the mail service.</summary> /// <param name="services">The services.</param> /// <param name="manager">The manager.</param> /// <returns></returns> public static IServiceCollection ConfigureMailService(this IServiceCollection services, ValidatingConfigurationManager manager) { // configure options and validators manager.ConfigureValidator(new MailServiceOptionsValidator()); services.Configure <MailServiceOptions>(manager, true); services.Configure <MailServerCertificateValidationOptions>(manager, true); services.AddSingleton <IMailTransportFactory, MailKitSmtpTransportFactory>(); services.AddScoped <IMailService, CertificateValidatingMailService>(provider => new CertificateValidatingMailService( provider.GetRequiredService <IOptionsMonitor <MailServiceOptions> >(), provider.GetService <ILogger <CertificateValidatingMailService> >(), provider.GetRequiredService <IOptionsMonitor <MailServerCertificateValidationOptions> >(), provider.GetRequiredService <IMailTransportFactory>())); return(services); }