MailKit - dotnet core package a day - 11

Overview

This post is part of a series, dotnet core package a day, where for 15 days I will be posting an overview of an awesome OSS dotnet package that already has support for dotnet core. In this post we will cover MailKit.

MailKit is a cross-platform mail client library built on top of MimeKit. The main goal of this project is to provide the .NET world with robust, fully featured and RFC-compliant SMTP, POP3, and IMAP client implementations. All of the other .NET IMAP client implementations that I could find suffer from major architectural problems such as ignoring unexpected untagged responses, assuming that literal string tokens will never be used for anything other than message bodies (when in fact they could be used for pretty much any string token in a response), assuming that the way to find the end of a message body in a FETCH response is by scanning for ") UID", and not properly handling mailbox names with international characters to simply name a few.

Since there is currently no support for System.Net.Mail.SmtpClient MailKit is by far the most recommended email client for dotnet core. At the time of writing it has 1,216,249 downloads on NuGet. The publish of it's v1.4.0 release to NuGet on the 1st July 2016 added support for dotnet core (.net standard 1.3).

MailKit development is led by Jeffrey Stedfast, it is under active development with contributions from a small community.

What the community thinks

Links

MailKit GitHub

MimeKit

Alternatives

I'm not sure that there are currently any alternatives available on dotnet core but using the rest apis provided by services like MailGun and SendGrid is probably viable.

Massive thanks to Jeffrey Stedfast, and the community.

If you don't want to keep checking back for more posts in this series but do want an email in your inbox then you can subscribe to the mailing list below.