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
contentbyte[]The attachment content.
namestringThe display name for the attachment.
contentTypestringOptional MIME content type.
Returns
- MailMessageBuilder
This builder instance for chaining.
Exceptions
- ArgumentNullException
contentis null.- ArgumentNullException
nameis null.
Attach(Stream, string, string?)
Attaches content from a stream.
public MailMessageBuilder Attach(Stream content, string name, string? contentType = null)
Parameters
contentStreamThe stream containing the attachment content.
namestringThe display name for the attachment.
contentTypestringOptional MIME content type.
Returns
- MailMessageBuilder
This builder instance for chaining.
Exceptions
- ArgumentNullException
contentis null.- ArgumentNullException
nameis null.
Attach(string)
Attaches a file by path.
public MailMessageBuilder Attach(string filePath)
Parameters
filePathstringThe file path of the attachment.
Returns
- MailMessageBuilder
This builder instance for chaining.
Exceptions
- ArgumentNullException
filePathis null.
Bcc(params string[])
Adds one or more BCC recipients.
public MailMessageBuilder Bcc(params string[] addresses)
Parameters
addressesstring[]The BCC email addresses.
Returns
- MailMessageBuilder
This builder instance for chaining.
Exceptions
- ArgumentNullException
addressesis null.
BodyEncoding(Encoding)
Sets the body encoding.
public MailMessageBuilder BodyEncoding(Encoding encoding)
Parameters
encodingEncodingThe 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
addressesstring[]The CC email addresses.
Returns
- MailMessageBuilder
This builder instance for chaining.
Exceptions
- ArgumentNullException
addressesis null.
DeliveryNotification(DeliveryNotificationOptions)
Sets the delivery notification options.
public MailMessageBuilder DeliveryNotification(DeliveryNotificationOptions options)
Parameters
optionsDeliveryNotificationOptionsThe 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
Returns
- MailMessageBuilder
This builder instance for chaining.
Exceptions
- ArgumentNullException
addressis null.
Header(string, string)
Adds a custom header.
public MailMessageBuilder Header(string name, string value)
Parameters
Returns
- MailMessageBuilder
This builder instance for chaining.
Exceptions
- ArgumentNullException
nameis null.
HtmlBody(string?)
Sets the HTML body.
public MailMessageBuilder HtmlBody(string? body)
Parameters
bodystringThe HTML body content.
Returns
- MailMessageBuilder
This builder instance for chaining.
PlainTextBody(string?)
Sets the plain text body.
public MailMessageBuilder PlainTextBody(string? body)
Parameters
bodystringThe plain text body content.
Returns
- MailMessageBuilder
This builder instance for chaining.
Priority(MailPriority)
Sets the mail priority.
public MailMessageBuilder Priority(MailPriority priority)
Parameters
priorityMailPriorityThe 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
addressesstring[]The reply-to email addresses.
Returns
- MailMessageBuilder
This builder instance for chaining.
Exceptions
- ArgumentNullException
addressesis null.
SenderAddress(string, string?)
Sets the Sender address (the actual sender, if different from From).
public MailMessageBuilder SenderAddress(string address, string? displayName = null)
Parameters
Returns
- MailMessageBuilder
This builder instance for chaining.
Exceptions
- ArgumentNullException
addressis null.
Subject(string?)
Sets the subject line.
public MailMessageBuilder Subject(string? subject)
Parameters
subjectstringThe email subject.
Returns
- MailMessageBuilder
This builder instance for chaining.
SubjectEncoding(Encoding)
Sets the subject encoding.
public MailMessageBuilder SubjectEncoding(Encoding encoding)
Parameters
encodingEncodingThe 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
Returns
- MailMessageBuilder
This builder instance for chaining.
Exceptions
- ArgumentNullException
addressis null.
To(params string[])
Adds one or more To recipients.
public MailMessageBuilder To(params string[] addresses)
Parameters
addressesstring[]The recipient email addresses.
Returns
- MailMessageBuilder
This builder instance for chaining.
Exceptions
- ArgumentNullException
addressesis null.