Table of Contents

Class MailForgeBuilder

Namespace
MailForge.Builders
Assembly
MailForge.dll

Fluent configuration for the MailForge framework. Passed to see AddMailForge(IServiceCollection, Action<MailForgeBuilder>) to select a provider, register templates, validators, and middleware, and tune delivery behavior.

public sealed class MailForgeBuilder
Inheritance
MailForgeBuilder
Inherited Members

Constructors

MailForgeBuilder()

Initializes a new instance of the MailForgeBuilder class.

public MailForgeBuilder()

Methods

AddMiddleware(IEmailMiddleware)

Adds a middleware stage to the delivery pipeline.

public MailForgeBuilder AddMiddleware(IEmailMiddleware middleware)

Parameters

middleware IEmailMiddleware

Returns

MailForgeBuilder

AddValidator(IEmailValidator)

Adds a validator run before delivery.

public MailForgeBuilder AddValidator(IEmailValidator validator)

Parameters

validator IEmailValidator

Returns

MailForgeBuilder

EnableAutoPlainText(bool)

Enables or disables automatic plain-text generation from the HTML body (enabled by default).

public MailForgeBuilder EnableAutoPlainText(bool enabled = true)

Parameters

enabled bool

Returns

MailForgeBuilder

RegisterTemplate(string, string)

Registers a named Razor template available to typed emails.

public MailForgeBuilder RegisterTemplate(string name, string content)

Parameters

name string
content string

Returns

MailForgeBuilder

UseAuditSink(IEmailAuditSink)

Registers an audit sink that records every delivery attempt.

public MailForgeBuilder UseAuditSink(IEmailAuditSink auditSink)

Parameters

auditSink IEmailAuditSink

Returns

MailForgeBuilder

UseDefaultFrom(EmailAddress)

Sets a default sender used when a typed email does not specify one.

public MailForgeBuilder UseDefaultFrom(EmailAddress from)

Parameters

from EmailAddress

Returns

MailForgeBuilder

UseDefaultFrom(string, string?)

Sets a default sender from a raw address string.

public MailForgeBuilder UseDefaultFrom(string address, string? displayName = null)

Parameters

address string
displayName string

Returns

MailForgeBuilder

UseFailover(FailoverPolicy, params IEmailProvider[])

Wraps providers in a failover chain that applies policy to every route.

public MailForgeBuilder UseFailover(FailoverPolicy policy, params IEmailProvider[] providers)

Parameters

policy FailoverPolicy
providers IEmailProvider[]

Returns

MailForgeBuilder

UseFailover(params IEmailProvider[])

Wraps providers in a failover precedence chain tried in order until one succeeds. Every route uses the default TransientOnly policy with a single attempt.

public MailForgeBuilder UseFailover(params IEmailProvider[] providers)

Parameters

providers IEmailProvider[]

Returns

MailForgeBuilder

UseFailover(params ProviderFailoverRoute[])

Wraps providers in a failover precedence chain from routes listed in order.

public MailForgeBuilder UseFailover(params ProviderFailoverRoute[] routes)

Parameters

routes ProviderFailoverRoute[]

Returns

MailForgeBuilder

UseFailover(IEnumerable<ProviderFailoverRoute>)

Wraps providers in a failover precedence chain, each route carrying its own Policy and attempt budget. Routes are tried in order and delivery stops at the first success.

public MailForgeBuilder UseFailover(IEnumerable<ProviderFailoverRoute> routes)

Parameters

routes IEnumerable<ProviderFailoverRoute>

Returns

MailForgeBuilder

UseProvider(IEmailProvider)

Selects the provider that delivers messages. Defaults to FakeEmailProvider.

public MailForgeBuilder UseProvider(IEmailProvider provider)

Parameters

provider IEmailProvider

Returns

MailForgeBuilder

UseProvider(Func<IServiceProvider, IEmailProvider>)

Selects a provider that is resolved from the service provider when the pipeline is built. Useful for providers registered in dependency injection.

public MailForgeBuilder UseProvider(Func<IServiceProvider, IEmailProvider> factory)

Parameters

factory Func<IServiceProvider, IEmailProvider>

Returns

MailForgeBuilder

WithRetries(int, TimeSpan?)

Configures transient-failure retries.

public MailForgeBuilder WithRetries(int maxAttempts, TimeSpan? baseDelay = null)

Parameters

maxAttempts int

The maximum number of delivery attempts (1 disables retries).

baseDelay TimeSpan?

The base delay before the first retry (default 1 second).

Returns

MailForgeBuilder