HtmlForgeX

API Reference

Class

Email

Namespace HtmlForgeX.Email
Assembly HtmlForgeX.Email
Base Element
Implements

Represents an email document with XHTML 1.0 Strict compliance for email clients. This partial class contains configuration-related methods.

Inheritance

Constructors

Email 3 overloads
public Email() #

Initializes a new instance of the Email class.

public Email(DocumentConfiguration configuration) #

Initializes a new instance of the Email class with a configuration delegate.

Parameters

configure System.Action{HtmlForgeX.Email.DocumentConfiguration} requiredposition: 0
Delegate to configure the DocumentConfiguration.
Email(HtmlForgeX.Email.DocumentConfiguration configuration) #

Initializes a new instance of the Email class with custom configuration.

Parameters

configuration HtmlForgeX.Email.DocumentConfiguration required
The document configuration to use.

Methods

public Void AddLibrary(EmailLibraries library) #
Returns: Void

Adds a predefined email library.

Parameters

library HtmlForgeX.Email.EmailLibraries requiredposition: 0
Library identifier.
public Email ConfigureImageOptimization(Int32 maxWidth = 800, Int32 maxHeight = 600, Int32 quality = 85) #
Returns: Email

Configures image optimization settings for this email.

Parameters

maxWidth System.Int32 = 800 optionalposition: 0
Maximum width in pixels (default: 800).
maxHeight System.Int32 = 600 optionalposition: 1
Maximum height in pixels (default: 600).
quality System.Int32 = 85 optionalposition: 2
JPEG quality 0-100 (default: 85).

Returns

The Email object, allowing for method chaining.

ConfigureLayout 3 overloads
public Email ConfigureLayout(String containerPadding = "12px", String contentPadding = "8px", String maxWidth = "600px", String containerPaddingMobile = null) #
Returns: Email

Configures layout settings for this email using string values.

Parameters

containerPadding System.String = "12px" optionalposition: 0
Container padding (default: "12px").
contentPadding System.String = "8px" optionalposition: 1
Content padding (default: "8px").
maxWidth System.String = "600px" optionalposition: 2
Maximum content width (default: "600px").
containerPaddingMobile System.String = null optionalposition: 3
Mobile container padding (default: value from ContainerPaddingMobile).

Returns

The Email object, allowing for method chaining.

public Email ConfigureLayout(String customMaxWidth, EmailPaddingSize containerPadding = Medium, EmailPaddingSize contentPadding = Small) #
Returns: Email

Configures layout settings for this email using predefined enum values. Provides easy-to-use presets while maintaining full control.

Parameters

layoutSize HtmlForgeX.Email.EmailLayoutSize = Standard requiredposition: 0
Predefined layout size (default: Standard).
containerPadding HtmlForgeX.Email.EmailPaddingSize = Medium optionalposition: 1
Container padding size (default: Medium).
contentPadding HtmlForgeX.Email.EmailPaddingSize = Small optionalposition: 2
Content padding size (default: Small).

Returns

The Email object, allowing for method chaining.

ConfigureLayout(System.String customMaxWidth, HtmlForgeX.Email.EmailPaddingSize containerPadding, HtmlForgeX.Email.EmailPaddingSize contentPadding) #

Configures layout settings with custom width but predefined padding. Perfect for when you know the exact width you want but prefer enum padding.

Parameters

customMaxWidth System.String required
Custom maximum width (e.g., "750px", "90%").
containerPadding HtmlForgeX.Email.EmailPaddingSize required
Container padding size (default: Medium).
contentPadding HtmlForgeX.Email.EmailPaddingSize required
Content padding size (default: Small).

Returns

The Email object, allowing for method chaining.

public Email ConfigureTheme(Action<Theme> configure) #
Returns: Email

Configures the per-email Theme (surface/text/accent) without writing CSS.

Parameters

configure System.Action{HtmlForgeX.Email.Theme} requiredposition: 0
public Email DisableImageEmbedding() #
Returns: Email

Disables automatic image embedding for this email.

Returns

The Email object, allowing for method chaining.

public Email EnableImageEmbedding(Int32 timeout = 30, Boolean optimize = false) #
Returns: Email

Enables automatic image embedding for all images in this email.

Parameters

timeout System.Int32 = 30 optionalposition: 0
Timeout in seconds for URL downloads (default: 30).
optimize System.Boolean = false optionalposition: 1
Whether to enable image optimization (default: false).

Returns

The Email object, allowing for method chaining.

public Email EnableInlineImageAttachments(Int32 timeout = 30) #
Returns: Email

Enables automatic image embedding as inline attachments (CID). Use RenderAsync to obtain the HTML + inline resources for your mail library (MimeKit/MailKit, etc.).

Parameters

timeout System.Int32 = 30 optionalposition: 0
Timeout in seconds for URL downloads (default: 30).

Returns

The Email object, allowing for method chaining.

EvaluateAllLayouts() #

Evaluates layout information for all child elements.

RegisterAllLibraries() #

Recursively registers libraries from all elements in the email.

RegisterLibrariesFromElement(HtmlForgeX.Email.Element element) #

Recursively registers libraries from an element and all its children.

Parameters

element HtmlForgeX.Email.Element required
The element to process.
public EmailRenderResult Render() #
Returns: EmailRenderResult

Renders the email and returns the HTML plus any inline resources (CID attachments) needed.

public Task<EmailRenderResult> RenderAsync() #
Returns: Task<EmailRenderResult>

Renders the email and returns the HTML plus any inline resources (CID attachments) needed.

public Void Save(String path, Boolean openInBrowser = false) #
Returns: Void

Saves the email to disk.

Parameters

path System.String requiredposition: 0
File path.
openInBrowser System.Boolean = false optionalposition: 1
Whether to open the file after saving.
public async Task SaveAsync(String path, Boolean openInBrowser = false, CancellationToken cancellationToken = null) #
Returns: Task

Saves the email to disk asynchronously.

Parameters

path System.String requiredposition: 0
File path.
openInBrowser System.Boolean = false optionalposition: 1
Whether to open the file after saving.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Token used to cancel the operation.
public Email SetDarkModeSupport(Boolean enabled = true) #
Returns: Email

Enables dark mode support for this email.

Parameters

enabled System.Boolean = true optionalposition: 0
Whether to enable dark mode support (default: true).

Returns

The Email object, allowing for method chaining.

public Email SetEmbeddingWarnings(Boolean enabled = true) #
Returns: Email

Enables or disables logging of embedding warnings.

Parameters

enabled System.Boolean = true optionalposition: 0
Whether to log warnings (default: true).

Returns

The Email object, allowing for method chaining.

public Email SetMaxEmbedFileSize(Int64 maxSizeBytes) #
Returns: Email

Sets the maximum file size for automatic image embedding.

Parameters

maxSizeBytes System.Int64 requiredposition: 0
Maximum file size in bytes (default: 2MB).

Returns

The Email object, allowing for method chaining.

public Email SetSmartImageDetection(Boolean enabled = true) #
Returns: Email

Enables or disables smart image detection (file vs URL detection).

Parameters

enabled System.Boolean = true optionalposition: 0
Whether to enable smart detection (default: true).

Returns

The Email object, allowing for method chaining.

public override String ToString() #
Returns: String

Converts the Email to its XHTML string representation.

Returns

Complete XHTML email document as string.

public async Task<String> ToStringAsync() #
Returns: Task<String>

Asynchronously converts the Email to its XHTML string representation.

Returns

A task containing the complete XHTML email document as string.

public Email WithAccentColor(String lightColor, String darkColor = null) #
Returns: Email

Sets the accent color used by components that rely on semantic colors (buttons, links, charts, etc.).

Parameters

lightColor System.String requiredposition: 0
darkColor System.String = null optionalposition: 1
public Email WithSurfaceColor(String lightColor, String darkColor = null) #
Returns: Email

Sets the surface color used by semantic components (containers, cards) when they use theme defaults.

Parameters

lightColor System.String requiredposition: 0
darkColor System.String = null optionalposition: 1
public Email WithTextColor(String lightColor, String darkColor = null) #
Returns: Email

Sets the primary text color used by semantic components when they use theme defaults.

Parameters

lightColor System.String requiredposition: 0
darkColor System.String = null optionalposition: 1
public Email WithThemeMode(EmailThemeMode mode) #
Returns: Email

Sets the theme mode for this email.

Parameters

mode HtmlForgeX.Email.EmailThemeMode requiredposition: 0
The theme mode (Light, Dark, or Auto).

Returns

The Email object, allowing for method chaining.

Properties

public Int32 EmbeddingWarningCount { get; } #

Gets the number of embedding warnings collected during generation.

public Theme Theme { get; } #

Per-email theme palette (surface/text/accent). Configure this to match your brand without writing CSS.

public DocumentConfiguration Configuration { get; } #

Configuration and state for this email document instance.

public EmailHead Head { get; } #

Gets the EmailHead section where metadata and styles are defined.

public EmailBody Body { get; } #

Gets the EmailBody containing the main message content.

public EmailHeader Header { get; } #

Gets the header area rendered at the top of the email.

public EmailLibraryMode LibraryMode { get; set; } #

Gets or sets the library mode for the email. Unsupported modes are ignored.

public String Path { get; set; } #

Gets or sets the file system path where the email will be saved.