MailMergeLib
version 5 is an SMTP mail client library which provides comfortable mail merge capabilities. MailMergeLib
is written in C# and comes with the following features:
- Email templates can be fully individualized in terms of recipients, subject, HTML and/or plain text, attachments and even headers. Placeholders are inserted as variable names from data source between curly braces like so:
{MailboxAddress.Name}
or with formatting arguments like{Date:yyyy-MM-dd}
. - HTML text may contain images from local hard disk, which will be automatically inserted as inline attachments.
- For HTML text
MailMergeLib
can generate a plain text representation. - Attachment sources can be files, streams or strings.
- The data source for email merge messages to a number of recipients and be any
IEnumerable
object as well asDataTable
s. The data source for single emails can be any of the following types:Dictionary<string,object>
,ExpandoObject
,DataRow
, any class instance or anonymous types. For class instances it's even allowed to use the name of parameter less methods in placeholders. - Placeholders in the email can be formatted much like the features known from
string.Format
by using SmartFormat.NET. SmartFormat is a fast and lean string parser and formatter, bringing a lot of additional options like conditional output depending on input data. - Resulting emails are MimeMessages from MimeKit, an outstanding tool for creating and parsing emails, covering all relevant MIME standards.
- Support for international email address format.
- Practically unlimited number of parallel tasks to send out individualized emails to a big number of recipients.
- SmptClients for each task can get their own preconfigured settings, so that e.g. several mail servers can be used for one send job.
- Progress of processing emails can easily be observed with a number of events.
- SMTP failures can automatically be resolved supplying a backup configuration. This fault-tolerance is essential for unattended production systems.
- Emails are sent using the SmtpClient from MailKit, the sister project to MimeKit. SmtpClient is highly flexible and can be configured for literally every scenario you can think of.
- Instead of sending, emails can also be stored in MIME formatted text files, e.g. if a "pickup directory" from IIS or Microsoft Exchange shall be used. If needed, these files can be loaded back into a MimeMessage from MimeKit.
- Messages and templates can be saved and loaded to/from XML files.
- Configuration settings for messages and SMTP can be stored to and loaded from an XML file.
- Fine grained control over the whole process of email message generation and distribution.
- RFC standards compliant.
- We aks you not to use
MailMergeLib
for sending unsolicited bulk email.
- .Net Framework 4.6.2 and later
- .Net Standard 2.1
- NET 6.0 and later
Have a closer look at the MailMergeLib Wiki