/// <summary> /// Adds a PostmarkSender to be used by FluentEmail. /// </summary> /// <param name="builder">The builder for this FluentEmail service.</param> /// <param name="options">A preconfigured PostmarkSenderOptions instance.</param> public static FluentEmailServicesBuilder AddPostmarkSender(this FluentEmailServicesBuilder builder, PostmarkSenderOptions options) { _ = builder ?? throw new ArgumentNullException(nameof(builder)); _ = options ?? throw new ArgumentNullException(nameof(options)); builder.Services.TryAdd(ServiceDescriptor.Scoped <ISender>(x => new PostmarkSender(options))); return(builder); }
/// <summary> /// Adds a PostmarkSender to be used by FluentEmail. /// </summary> /// <param name="builder">The builder for this FluentEmail service.</param> /// <param name="serverToken">The serverToken to use to authenticate at the Postmark API.</param> /// <param name="configureOptions">A method that changes the desired options of a PostmarkSenderOptions instance.</param> public static FluentEmailServicesBuilder AddPostmarkSender(this FluentEmailServicesBuilder builder, string serverToken, Action <PostmarkSenderOptions> configureOptions) { _ = builder ?? throw new ArgumentNullException(nameof(builder)); _ = configureOptions ?? throw new ArgumentNullException(nameof(configureOptions)); var opts = new PostmarkSenderOptions(serverToken); configureOptions(opts); builder.Services.TryAdd(ServiceDescriptor.Scoped <ISender>(x => new PostmarkSender(opts))); return(builder); }
public static FluentEmailServicesBuilder AddGraphSender( this FluentEmailServicesBuilder builder, string GraphEmailAppId, string GraphEmailTenantId, string GraphEmailSecret, bool saveSentItems = false) { builder.Services.TryAdd(ServiceDescriptor.Scoped <ISender>(_ => new GraphSender(GraphEmailAppId, GraphEmailTenantId, GraphEmailSecret, saveSentItems))); return(builder); }
public static FluentEmailServicesBuilder AddLiquidRenderer( this FluentEmailServicesBuilder builder, Action <LiquidRendererOptions>?configure = null) { builder.Services.AddOptions <LiquidRendererOptions>(); if (configure != null) { builder.Services.Configure(configure); } builder.Services.TryAddSingleton <ITemplateRenderer, LiquidRenderer>(); return(builder); }
public static FluentEmailServicesBuilder AddFluentEmail(this IServiceCollection services, string defaultFromEmail, string defaultFromName = "") { if (services == null) { throw new ArgumentNullException(nameof(services)); } var builder = new FluentEmailServicesBuilder(services); services.TryAdd(ServiceDescriptor.Transient <IFluentEmail>(x => new Email(x.GetService <ITemplateRenderer>(), x.GetService <ISender>(), defaultFromEmail, defaultFromName) )); services.TryAddTransient <IFluentEmailFactory, FluentEmailFactory>(); return(builder); }
public static FluentEmailServicesBuilder AddSmtpSender(this FluentEmailServicesBuilder builder, string host, int port) => AddSmtpSender(builder, () => new SmtpClient(host, port));
public static FluentEmailServicesBuilder AddSmtpSender(this FluentEmailServicesBuilder builder, SmtpClient smtpClient) { builder.Services.TryAdd(ServiceDescriptor.Singleton <ISender>(x => new SmtpSender(smtpClient))); return(builder); }
public static FluentEmailServicesBuilder AddMailGunSender(this FluentEmailServicesBuilder builder, string domainName, string apiKey, MailGunRegion mailGunRegion = MailGunRegion.USA) { builder.Services.TryAdd(ServiceDescriptor.Scoped <ISender>(x => new MailgunSender(domainName, apiKey, mailGunRegion))); return(builder); }
/// <summary> /// Add razor renderer with a RazorLightProject to support views and layouts /// </summary> /// <param name="builder"></param> /// <param name="razorLightProject"></param> /// <returns></returns> public static FluentEmailServicesBuilder AddRazorRenderer(this FluentEmailServicesBuilder builder, RazorLightProject razorLightProject) { builder.Services.TryAdd(ServiceDescriptor.Singleton <ITemplateRenderer, RazorRenderer>(sp => new RazorRenderer(razorLightProject))); return(builder); }
public static FluentEmailServicesBuilder AddMailtrapSender(this FluentEmailServicesBuilder builder, string userName, string password, string host = null, int?port = null) { builder.Services.TryAdd(ServiceDescriptor.Scoped <ISender>(x => new MailtrapSender(userName, password, host, port))); return(builder); }
public static FluentEmailServicesBuilder AddSendGridSender(this FluentEmailServicesBuilder builder, string apiKey, bool sandBoxMode = false) { builder.Services.TryAdd(ServiceDescriptor.Scoped <ISender>(x => new SendGridSender(apiKey, sandBoxMode))); return(builder); }
public static FluentEmailServicesBuilder AddMailKitSender(this FluentEmailServicesBuilder builder, SmtpClientOptions smtpClientOptions) { builder.Services.TryAdd(ServiceDescriptor.Scoped <ISender>(x => new MailKitSender(smtpClientOptions))); return(builder); }
/// <summary> /// Add razor renderer with a RazorLightProject to support views and layouts /// </summary> /// <param name="builder"></param> /// <param name="razorLightProject"></param> /// <returns></returns> public static FluentEmailServicesBuilder AddRazorRenderer(this FluentEmailServicesBuilder builder, RazorLightProject razorLightProject) { builder.Services.AddRazorLight(() => RazorLightEngineFactory.Create(razorLightProject)); builder.Services.AddSingleton <ITemplateRenderer, RazorRenderer>(); return(builder); }
/// <summary> /// Add razor renderer with embedded views and layouts /// </summary> /// <param name="builder"></param> /// <param name="embeddedResourceRootType"></param> /// <returns></returns> public static FluentEmailServicesBuilder AddRazorRenderer(this FluentEmailServicesBuilder builder, Type embeddedResourceRootType) { builder.Services.AddRazorLight(() => RazorLightEngineFactory.Create(embeddedResourceRootType)); builder.Services.AddSingleton <ITemplateRenderer, RazorRenderer>(); return(builder); }
public static FluentEmailServicesBuilder AddHandlebarsRenderer(this FluentEmailServicesBuilder builder) { builder.Services.TryAdd(ServiceDescriptor.Singleton <ITemplateRenderer, HandlebarsRenderer>()); return(builder); }
public static FluentEmailServicesBuilder AddSmtpSender(this FluentEmailServicesBuilder builder, string host, int port, string username, string password) => AddSmtpSender(builder, () => new SmtpClient(host, port) { EnableSsl = true, Credentials = new NetworkCredential(username, password) });
public static FluentEmailServicesBuilder AddSmtpSender(this FluentEmailServicesBuilder builder, Func <SmtpClient> clientFactory) { builder.Services.TryAdd(ServiceDescriptor.Scoped <ISender>(x => new SmtpSender(clientFactory))); return(builder); }
/// <summary> /// Add razor renderer with project views and layouts /// </summary> /// <param name="builder"></param> /// <param name="templateRootFolder"></param> /// <returns></returns> public static FluentEmailServicesBuilder AddRazorRenderer(this FluentEmailServicesBuilder builder, string templateRootFolder) { builder.Services.TryAdd(ServiceDescriptor.Singleton <ITemplateRenderer, RazorRenderer>(sp => new RazorRenderer(templateRootFolder))); return(builder); }
/// <summary> /// Add razor renderer with embedded views and layouts /// </summary> /// <param name="builder"></param> /// <param name="embeddedResourceRootType"></param> /// <returns></returns> public static FluentEmailServicesBuilder AddRazorRenderer(this FluentEmailServicesBuilder builder, Type embeddedResourceRootType) { builder.Services.TryAdd(ServiceDescriptor.Singleton <ITemplateRenderer, RazorRenderer>(sp => new RazorRenderer(embeddedResourceRootType))); return(builder); }
/// <summary> /// Adds a PostmarkSender to be used by FluentEmail. /// </summary> /// <param name="builder">The builder for this FluentEmail service.</param> /// <param name="serverToken">The serverToken to use to authenticate at the Postmark API.</param> public static FluentEmailServicesBuilder AddPostmarkSender(this FluentEmailServicesBuilder builder, string serverToken) { _ = builder ?? throw new ArgumentNullException(nameof(builder)); builder.Services.TryAdd(ServiceDescriptor.Scoped <ISender>(x => new PostmarkSender(serverToken))); return(builder); }