Class MailMessageBuilder

Namespace
Wolfgang.Extensions.Mail
Assembly
Wolfgang.Extensions.Mail.dll

A fluent builder for constructing MailMessage instances. Simplifies the verbose ceremony of setting up mail messages.

public sealed class MailMessageBuilder
Inheritance
MailMessageBuilder
Inherited Members

Examples

using var message = new MailMessageBuilder()
    .From("sender@example.com", "Sender Name")
    .To("alice@example.com", "bob@example.com")
    .Subject("Monthly Report")
    .HtmlBody("<h1>Report</h1>")
    .Attach("report.pdf")
    .Build();

Methods

Attach(byte[], string, string?)

Attaches content from a byte array.

public MailMessageBuilder Attach(byte[] content, string name, string? contentType = null)

Parameters

content byte[]

The attachment content.

name string

The display name for the attachment.

contentType string

Optional MIME content type.

Returns

MailMessageBuilder

This builder instance for chaining.

Exceptions

ArgumentNullException

content is null.

ArgumentNullException

name is null.

Attach(Stream, string, string?)

Attaches content from a stream.

public MailMessageBuilder Attach(Stream content, string name, string? contentType = null)

Parameters

content Stream

The stream containing the attachment content.

name string

The display name for the attachment.

contentType string

Optional MIME content type.

Returns

MailMessageBuilder

This builder instance for chaining.

Exceptions

ArgumentNullException

content is null.

ArgumentNullException

name is null.

Attach(string)

Attaches a file by path.

public MailMessageBuilder Attach(string filePath)

Parameters

filePath string

The file path of the attachment.

Returns

MailMessageBuilder

This builder instance for chaining.

Exceptions

ArgumentNullException

filePath is null.

Bcc(params string[])

Adds one or more BCC recipients.

public MailMessageBuilder Bcc(params string[] addresses)

Parameters

addresses string[]

The BCC email addresses.

Returns

MailMessageBuilder

This builder instance for chaining.

Exceptions

ArgumentNullException

addresses is null.

BodyEncoding(Encoding)

Sets the body encoding.

public MailMessageBuilder BodyEncoding(Encoding encoding)

Parameters

encoding Encoding

The encoding for the body.

Returns

MailMessageBuilder

This builder instance for chaining.

Build()

Builds a new MailMessage from the configured values.

public MailMessage Build()

Returns

MailMessage

A fully constructed MailMessage.

Exceptions

InvalidOperationException

The From address has not been set, or no recipient (To, Cc, or Bcc) has been added. The exception message reports every missing part.

Cc(params string[])

Adds one or more CC recipients.

public MailMessageBuilder Cc(params string[] addresses)

Parameters

addresses string[]

The CC email addresses.

Returns

MailMessageBuilder

This builder instance for chaining.

Exceptions

ArgumentNullException

addresses is null.

DeliveryNotification(DeliveryNotificationOptions)

Sets the delivery notification options.

public MailMessageBuilder DeliveryNotification(DeliveryNotificationOptions options)

Parameters

options DeliveryNotificationOptions

The notification options.

Returns

MailMessageBuilder

This builder instance for chaining.

From(string, string?)

Sets the From address.

public MailMessageBuilder From(string address, string? displayName = null)

Parameters

address string

The sender email address.

displayName string

Optional display name.

Returns

MailMessageBuilder

This builder instance for chaining.

Exceptions

ArgumentNullException

address is null.

Header(string, string)

Adds a custom header.

public MailMessageBuilder Header(string name, string value)

Parameters

name string

The header name.

value string

The header value.

Returns

MailMessageBuilder

This builder instance for chaining.

Exceptions

ArgumentNullException

name is null.

HtmlBody(string?)

Sets the HTML body.

public MailMessageBuilder HtmlBody(string? body)

Parameters

body string

The HTML body content.

Returns

MailMessageBuilder

This builder instance for chaining.

PlainTextBody(string?)

Sets the plain text body.

public MailMessageBuilder PlainTextBody(string? body)

Parameters

body string

The plain text body content.

Returns

MailMessageBuilder

This builder instance for chaining.

Priority(MailPriority)

Sets the mail priority.

public MailMessageBuilder Priority(MailPriority priority)

Parameters

priority MailPriority

The priority level.

Returns

MailMessageBuilder

This builder instance for chaining.

ReplyTo(params string[])

Adds one or more Reply-To addresses.

public MailMessageBuilder ReplyTo(params string[] addresses)

Parameters

addresses string[]

The reply-to email addresses.

Returns

MailMessageBuilder

This builder instance for chaining.

Exceptions

ArgumentNullException

addresses is null.

SenderAddress(string, string?)

Sets the Sender address (the actual sender, if different from From).

public MailMessageBuilder SenderAddress(string address, string? displayName = null)

Parameters

address string

The sender email address.

displayName string

Optional display name.

Returns

MailMessageBuilder

This builder instance for chaining.

Exceptions

ArgumentNullException

address is null.

Subject(string?)

Sets the subject line.

public MailMessageBuilder Subject(string? subject)

Parameters

subject string

The email subject.

Returns

MailMessageBuilder

This builder instance for chaining.

SubjectEncoding(Encoding)

Sets the subject encoding.

public MailMessageBuilder SubjectEncoding(Encoding encoding)

Parameters

encoding Encoding

The encoding for the subject.

Returns

MailMessageBuilder

This builder instance for chaining.

To(string, string)

Adds a To recipient with a display name.

public MailMessageBuilder To(string address, string displayName)

Parameters

address string

The recipient email address.

displayName string

The display name.

Returns

MailMessageBuilder

This builder instance for chaining.

Exceptions

ArgumentNullException

address is null.

To(params string[])

Adds one or more To recipients.

public MailMessageBuilder To(params string[] addresses)

Parameters

addresses string[]

The recipient email addresses.

Returns

MailMessageBuilder

This builder instance for chaining.

Exceptions

ArgumentNullException

addresses is null.