public EmailService CreateEmailService()
        {
            EmailService emailService = new EmailServiceBuilder()
                                        .SetEmailProvider(EmailProvider.Google)
                                        .SetCredentials("Username", "Password")
                                        .SetEmailAddresses("*****@*****.**", "*****@*****.**")
                                        .SetXslFile("transform.xsl")
                                        .Build();

            return(emailService);
        }
예제 #2
0
        public static EmailServiceBuilder AddSmtpClient(this EmailServiceBuilder builder, Func <IServiceProvider, SmtpOptions> optionsFactory)
        {
            if (optionsFactory == null)
            {
                throw new ArgumentNullException(nameof(optionsFactory));
            }

            builder.Services.TryAddSingleton(serviceProvider => optionsFactory.Invoke(serviceProvider));
            builder.Services.TryAddSingleton <IEmailClient, SmtpEmailClient>();

            return(builder);
        }
예제 #3
0
        public static EmailServiceBuilder AddEmail(this IServiceCollection services,
                                                   Func <IServiceProvider, EmailAddress> fromFactory,
                                                   Action <IServiceProvider, EmailOptions>?configure = null)
        {
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }

            var builder = new EmailServiceBuilder(services);

            services.TryAddSingleton(serviceProvider =>
            {
                var options = new EmailOptions(fromFactory(serviceProvider));
                configure?.Invoke(serviceProvider, options);
                return(options);
            });
            services.TryAddSingleton <IEmailSender, EmailSender>();

            return(builder);
        }
예제 #4
0
 public static EmailServiceBuilder AddSmtpClient(this EmailServiceBuilder builder, SmtpOptions options)
 => AddSmtpClient(builder, _ => options);
예제 #5
0
 public static EmailServiceBuilder AddSmtpClient(this EmailServiceBuilder builder, string host, int port = 25)
 => AddSmtpClient(builder, _ => new SmtpOptions(host, port));
예제 #6
0
        public static EmailServiceBuilder AddFileClient(this EmailServiceBuilder builder, string path)
        {
            builder.Services.TryAddSingleton <IEmailClient>(_ => new FileEmailClient(path));

            return(builder);
        }
예제 #7
0
        public static EmailServiceBuilder AddRazorTemplateRenderer(this EmailServiceBuilder builder)
        {
            builder.Services.TryAddSingleton <IEmailTemplateRenderer, RazorEmailTemplateRenderer>();

            return(builder);
        }