Fluent.NET Mail - Dynamic Templated Emailing Framework

Fluent.NET Mail - Dynamic Templated Emailing Framework

There are extra licensing options available for this product on, the creators of Fluent.NET Mail. Discounted prices available!

Fluent.NET Mail takes advantage of the built in .NET API and provides the ability to construct and send emails very easily. All the messy work is taken care of in the background and allows the simple focus of easily constructing emails using custom templates including dynamic substitution of data into your template, sending mail in various formats (text & HTML), choosing your means of transportation (SMTP, Network, Pickup), using security certificates, using SSL, sending attachments, sending mail asynchronously plus all the features provided by the .NET framework.

Check out Web Miner, a real world web content mining application which takes advantage of Fluent.NET Mail. See an application preview here. The email miner takes advantage of this fantastic component by sending out templated emails.

This is the single easiest and most comprehensive .NET emailing API available. Easy to use and powerful!

When would I use this?

  • Sending bulk emails for marketing campaigns. Also check out MassMailer.NET
  • Working with template driven emails (personalizing emails)
  • Very simple, comprehensive and easy to use API
  • Fully functional for secure emails, delivery & read notifications, attachments, alternate views, etc
  • Full support for the .NET SMTP libraries

What are the advantages?

  • Very high performance
  • Simple to use
  • Documented API
  • Support provided at
  • Constructs and sends emails using a Fluent paradigm
  • Provides a complete API for sending emails with various configurations including with SSL, mail headers, attachments, alternate views, mail priority, encoding, delivery notification options, etc
  • Send both text and html emails
  • Building emails using text or html templates
  • Complete integration with the standard .NET mail mechanisms & the web.config/app.config
  • Delivery receipts
  • Read receipts
  • Secure emails
  • Plus much more…

What do you get in the package?

  • .NET 3.5 Assemblies
  • Debug files (PDB)
  • XML comments (Intellisense)
  • Documented API
  • Demo application
  • Getting started documentation


This component is built using the .NET 3.5 Framework which means in can be used in all .NET applications that are using the 3.5 framework or newer. This includes .NET 3.5, 4.0, & 4.5+.


Ask any questions or suggest features at

How to use this component?

The example shows how to send a personalized text email while loading the template from a file.

new Mail()
    .To(new MailBox(emailAddress))
    .From(new MailBox(emailAddress))
    .Text(new MessageTemplate()
            .DataFrom(new { FirstName = "John", LastName = "Smith" })
    .SmtpServer("[your smtp server]")

The example compares the traditional approach of sending email versus the new fluent approach.

// Fluent API - Simple, easy with great performance and
// behind the scenes memory management
new Mail()
    .From(new MailBox(emailAddress, "NoReply"))
    .To(new MailBox(emailAddress, "Support"))
    .Subject("Mail sent " + DateTime.Now.ToLongTimeString())
    .Credentials(emailAddress, "[password]")
    .Text(new MessageTemplate()
            .FromText("Hello {FirstName} {LastName}. How are you today?")
            .DataFrom(new { FirstName = "John", LastName = "Smith" })
    .SmtpServer("[your smtp server]")
// Traditional approach with a detach workflow and
// manual memory management. There are of course
// no built email personalisation features.
var fromAddress = new MailAddress(emailAddress, "NoReply");
var toAddress = new MailAddress(emailAddress, "Support");

var smtp = new SmtpClient
    Host = "[your smtp server]",
    Port = 587,
    EnableSsl = false,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = true,
    Credentials = new NetworkCredential(fromAddress, fromPassword)

using (var message = new MailMessage(fromAddress, toAddress))
    message.Subject = "Mail sent " + DateTime.Now.ToLongTimeString();
    message.Body = "body";

Get lots more examples here:


2.0, November 3rd 2014


  • Upgraded from .NET 2.0 to .NET 3.5 (This is necessary to satisfy a more complex architecture without hacks that cause potential conflicts and warnings)
  • Split architecture into 3 parts (Composer, Distributor, Public API). This change allows both the existing way of using the API and the more granular approach
  • Email building can now be done through the Composer class
  • Email distribution can now be done through the Distributor class
  • Added [BindingName] attribute to override the default property name when substituting values in the template
  • Added the ability to Clone a MailBox through implementation of the ICloneable interface
  • Added the ability to clone a MailConfiguration through implementation of the ICloneable interface
  • Added the ability to clone a MessageTemplate through the implementation of the ICloneable interface
  • Expose the MailConfiguration class which is used the maintain the configuration of a FluentMail instance.


  • Minor performance improvements
  • Set defaults for SMTP port if not provided using the values 465 if SSL is requested else 587.

Bug Fixes

  • Fixed MessageTemplate exception when validating a valid message.