Simplify.Mail 1.5.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package Simplify.Mail --version 1.5.2
NuGet\Install-Package Simplify.Mail -Version 1.5.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Simplify.Mail" Version="1.5.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Simplify.Mail --version 1.5.2
#r "nuget: Simplify.Mail, 1.5.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Simplify.Mail as a Cake Addin
#addin nuget:?package=Simplify.Mail&version=1.5.2

// Install Simplify.Mail as a Cake Tool
#tool nuget:?package=Simplify.Mail&version=1.5.2

Simplify.Mail Documentation

Provides IMailSender interface and MailSender implementation for simple e-mail sending.

Available at NuGet as binary package

Quick Start Usage

MailSender.Default ambient context provides default mail sender.

By default it initializes from App.config or Web.config file with three required settings:

<?xml version="1.0"?>

<configuration>
	<configSections>
		<section name="MailSenderSettings" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
	</configSections>

	<MailSenderSettings>
		<add key="SmtpServerAddress" value="server name or ip address"/>
		<add key="SmtpUserName" value="user name"/>
		<add key="SmtpUserPassword" value="user password"/>
	</MailSenderSettings>
</configuration>

Simple mail sending example

MailSender.Default.Send("mymail@somedomain.com", "mailrecepient@somedomain.com", "Mail subject!", "Mail message, can be full HTML page");

Anti-Spam filter

Mail sender includes anti-spam message pool, which is ON by default and default pool message life time is 120 min. Whenever message is sending via MailSender, it's body will be added to anti-spam pool. At the next time, when another message with the same body is sent in next 120 minutes after first message is sent then the message will not be sent. It is useful, for example, if you have some windows service, which is doing some processing every minute and so on, and it is started to throwing same exceptions every minute, then the MailSender will prevent it from spamming. Anti-spam pool can be turned off via configuration.

You can specify body for anti-spam pool checking separately from mail message body. For example, if you have some "current time" information in your body, which will be changing every time message sends, and anyway your want to use anti-spam pool, then you can provide that message body without time information as separated parameter, for example:

var message = "Some problem was happened at: ";
MailSender.Default.Send("mymail@somedomain.com", "mailrecepient@somedomain.com", "Some problem was happened at: ", message + DateTime.Now, message);

Multiple recepients, carbon copy recipients and attachements

MailSender.Default.Send("mymail@somedomain.com", new List<string> { "address1@somedomain.com", "address2@somedomain.com" }, new List<string> { "address3@somedomain.com", "address4@somedomain.com" },
				"Mail subject!", "Mail message, can be full HTML page", null,
				new Attachment(ms, "Attachement title.xls", "application/vnd.ms-excel"));

Send message to recipients separately

MailSender.Default.SendSeparately("mymail@somedomain.com", new List<string> { "address1@somedomain.com", "address2@somedomain.com" }, "Mail subject!", "Mail message, can be full HTML page");

Custom/Manual initialization

Specifying settings section in config file

MailSender(string configurationSectionName = "MailSenderSettings")

Passing custom parameters

MailSender(string smtpServerAddress, int smtpServerPortNumber, string smtpUserName, string smtpUserPassword,
    bool enableSsl = false, bool antiSpamMessagesPoolOn = true, int antiSpamPoolMessageLifeTime = 125)

Passing 'IMailSenderSettings' with any implementation

MailSender(IMailSenderSettings mailSenderSettings)

Instantiating with the Microsoft.Extensions.Configuration IConfiguration implementation with ability to specify settings section name

public MailSender(IConfiguration configuration, string configurationSectionName = "MailSenderSettings")

IConfiguration settings based on appsettings.json example:

{
    "MailSenderSettings":
    {
        "SmtpServerAddress": "server name or ip address",
        "SmtpUserName": "user name",
        "SmtpUserPassword": "user password"
    }
}

All available options example

<?xml version="1.0"?>

<configuration>
    <configSections>
      <section name="MailSenderSettings" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
   </configSections>

    <MailSenderSettings>
        <add key="SmtpServerAddress" value="server name or ip address"/>
        <add key="SmtpUserName" value="user name"/>
        <add key="SmtpUserPassword" value="user password"/>

        
        <add key="SmtpServerPortNumber" value="25"/>

        
        <add key="AntiSpamMessagesPoolOn" value="true"/>

        
        <add key="AntiSpamPoolMessageLifeTime" value="120"/>

        
        <add key="EnableSsl" value="true"/>
    </MailSenderSettings>
</configuration>
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 is compatible.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.5.5 183 8/26/2023
1.5.4 896 9/8/2022
1.5.3 466 7/21/2022
1.5.2 719 4/29/2022
1.5.1 938 2/2/2021
1.5.0 1,839 12/9/2019
1.4.0 1,129 12/12/2018
1.3.1 1,952 3/5/2018
1.3.0 6,595 6/1/2015
1.2.0 2,546 9/22/2014
1.1.0 1,439 9/2/2014
1.0.0 1,617 2/25/2014