NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #219 most downloaded on NuGet
MailKit is an Open Source cross-platform .NET mail-client library that is based on MimeKit and optimized for mobile devices. Features include: * HTTP, Socks4, Socks4a and Socks5 proxy support. * SASL Authentication via ANONYMOUS, CRAM-MD5, DIGEST-MD5, LOGIN, NTLM, OAUTHBEARER, PLAIN, SCRAM-SHA-1, SCRAM-SHA-256, SCRAM-SHA-512 and XOAUTH2. * A fully-cancellable SmtpClient with support for STARTTLS, 8BITMIME, BINARYMIME, ENHANCEDSTATUSCODES, SIZE, DSN, PIPELINING and SMTPUTF8. * A fully-cancellable Pop3Client with support for STLS, UIDL, APOP, PIPELINING, UTF8, and LANG. * A fully-cancellable ImapClient with support for ACL, QUOTA, LITERAL+, IDLE, NAMESPACE, ID, CHILDREN, LOGINDISABLED, STARTTLS, MULTIAPPEND, UNSELECT, UIDPLUS, CONDSTORE, ESEARCH, SASL-IR, COMPRESS, WITHIN, ENABLE, QRESYNC, SORT, THREAD, ANNOTATE, LIST-EXTENDED, ESORT, METADATA / METADATA-SERVER, NOTIFY, FILTERS, LIST-STATUS, SORT=DISPLAY, SPECIAL-USE / CREATE-SPECIAL-USE, SEARCH=FUZZY, MOVE, UTF8=ACCEPT / UTF8=ONLY, LITERAL-, APPENDLIMIT, STATUS=SIZE, OBJECTID, REPLACE, SAVEDATE, XLIST, and X-GM-EXT1. * Client-side sorting and threading of messages (the Ordinal Subject and the Jamie Zawinski threading algorithms are supported). * Asynchronous versions of all methods that hit the network. * S/MIME, OpenPGP, DKIM and ARC support via MimeKit. * Microsoft TNEF support via MimeKit.
Last release 10 days ago
27 Sep 2026
Release timing varies
gaps range from 2 weeks to 4 months
Nearly every release is documented
notes for 56 of the last 60 stable releases
106 versions withdrawn
withdrawn after publishing
127 years old
192 releases · first in 1900
Fixed telemetry duration histograms being 100x too large on Linux/macOS. (issue #2020)
Fixed SaslMechanismNativeNtlm on systems that need a multi-stage auth. (issue #2007)
One column per quarter.
Updated nullability of ImapClient.Inbox (which will never return null). (issue #1996)
SECURITY: Fixed protocol streams to reset internal buffers after upgrading to SSL/TLS.
SECURITY: Bumped MimeKit to 4.15.1 for a security fix that prevents mailbox addresses from being allowed to contain CRLF sequences which can be used t…
MAIL FROM or RCPT TO commands.Default the SmtpClient/Pop3Client/ImapClient.SslProtocols to the ServicePointManager.SecurityProtocol value in .NET Framework (net4x). (issue #1952)
Re-added NTLM to the list of mechanisms to try by default. (issue #1953)
Updated MailService::GetSslClientAuthenticationOptions to be protected virtual. (issue #1931)
Fixed tokenization of IMAP atom tokens that start with '+'. (issue #1914)
Fixed authentication bugs introduced into 4.12.0 related to adding GSSAPI and native NTLM auth support which causes problems on Linux/Mac. (issue #191
Added support for native NTLM auth (using .NET Core's NegotiateAuthentication API). This new class is called SaslMechanismNtlmNative and is the defaul
Default MailService.SslProtocols to SslProtocols.None which is what the dotnet SslStream team recommends. (As weird as it may seem, SslProtocols.None
Work around a QQMail/Yandex IMAP BODYSTRUCTURE response for empty multipart. (issue #1861)
Added an IMAP work-around for mail.ru which sometimes sends integer tokens as decimals in its responses. (issue #1838)
("ALTERNATIVE")). (issue #1841)Added a UniqueIdRange.SortOrder property.
Fixed ImapClient and Pop3Client.Connect/Async() when OTEL is enabled. (issue #1765)
Added Activity/Metrics for Imap/Pop3/SmtpClient. (issue #1499)
Swallow SMTP RSET exceptions. These obscure other Send/SendAsync exceptions. Fixes a regression introduced in 4.4.0. (issue #1748)
Added a new SmtpClient.RequireTLS property to fix sending mail via Strato.de. (issue #1737)
Split more sync/async logic to reduce allocations made by async state machines when calling the synchronous public APIs instead of the async APIs. (is
Fixed an ArgumentOutOfRangeException error in Fetch(int min, int max, ...) where min and max were greater than folder.Count. (issue #1640)
Fixed a bug where the HttpProxyClient and HttpsProxyClient could end up reading the mail server greeting, causing a connection failure for the ImapCli
List<IMessageSummary> capacity estimation for Fetch (IList<UniqueId>, ...).Fixed queueing logic for pipelining SMTP and POP3 commands. (issue #1568)
Marked the AccessRight and UniqueId structs as readonly.
Decrement ImapFolder.Count when ImapClient receives an untagged EXPUNGE notification and emit a CountChanged event. (issue #1509)
Fixed bitmasking logic in SmtpClient.cs for deciding whether to use the BDAT command.
(NIL NIL "" "localhost")
(issue #1471)Fixed potential memory leaks in Pop3Client.
Fixed fetching of MessageSummaryItems.PreviewText if the octet count of the message body is 0. (issue #1430)
Reverted the socket connection change to allow Socket.Connect() to do DNS lookups for us. Turns out, Socket.Connect() doesn't iterate over all returne
Fixed a bug that caused ImapFolder.Fetch/FetchAsync to throw TaskCanceledException instead of allowing the correct exception to bubble up. (issue #141
Added work-around for IMAP BODYSTRUCTURE responses that have a NIL multipart body. (issue #1393)
Do not use ApplicationProtocols with SSL. (issue #1352)
Reduced string allocations in Pop3Engine's capability parser.
Fixed NTLM to always prefer the supplied domain over the TargetName or TargetInfo.DomainName. (issue #582)
Removed APIs marked as \[Obsolete\] in 2.x.
Nothing published for this version
Use DebugType=full for .NET Framework v4.x. (issue #1239)
Added support for logging timestamps in the ProtocolLogger (see the LogTimestamps and TimestampFormat properties on ProtocolLogger).
ProtocolLogger (see the LogTimestamps and TimestampFormat
properties on ProtocolLogger).ProtocolLogger.RedactSecrets property to true. (issue #1174)Added new properties to all clients to get SSL cipher/hash/protocol/key-exchange info. (issue #1175)
Fixed the .NET 5.0 build to include .NET 5.0-specific features. Previous releases incorrectly used
Added work-around for IMAP servers that do not correctly handle the ESEARCH RETURN () syntax the same as RETURN (ALL). (issue #1177)
RETURN () syntax
the same as RETURN (ALL). (issue #1177)Handle BAD responses to the NAMESPACE command for Exchange. (issue #1135)
A few NTLM improvements that I hope are correct.
Don't enable support for TLS v1.1 by default anymore. (issue #1077)
Refactored Connect/ConnectAsync() logic to set timeouts *before* calling SslStream.AuthenticateAsClient() when connecting to an SSL-wrapped service. (
Make sure to use the InvariantCulture when converting port values to a string. (issue #1040)
Added a MessageSummary.Folder property and MessageThread.Message property to allow developers to thread messages from multiple IMAP folders and be abl
MAIL FROM and RCPT TO commands even if a options.International is not
explicitly set to true if any of the mailbox addresses are international
addresses.
(issue #1026)Properly handle connection drops in SmtpClient.NoOp() and NoOpAsync() methods.
Added work-around for ENVELOPE responses with a NIL address token in an address-list. (issue #991)
Fixed the IMAP ENVELOPE parser to have a more lenient fallback if it fails to be able to parse the Message-Id token value. (issue #976)
-1 as a line count or octet count in the
BODYSTRUCTURE response.Ignore NIL tokens in the body-fld-lang token list. (issue #953)
<CR><LF> in untagged FETCH responses.
(issue #954)Note: Developers using ImapFolder.GetStreamsAsync() will need to update their code as this release breaks API/ABI.
Don't use PublicSign on non-Windows NT machines when building.
() as a message/rfc822 body token.
(issue #944)Added work-around for IMAP ENVELOPE responses that do not include an In-Reply-To token. (issue #932)
* BYE.
(issue #938)Fixed trimming delimiters from the end of IMAP folder names.
Fixed SmtpClient.Send*() to make sure never to add an extra CRLF sequence to the end of messages when sending via the DATA command. (issue #895)
Improved the default SSL/TLS certificate validation logic.
Optimized MailKit's logic for breaking apart long IMAP commands for GMail, Dovecot, and Yahoo! Mail.
Bumped the System.Net.Security dependency for security fixes (CVE-2017-0249).
Fixed ImapUtils.GetUniqueHeaders() to accept all valid header field name characters. (issue #806)
Fixed IMAP GetFolder() methods to match LIST responses case-insensitively. (issue #803)
RET parameter value to the MAIL FROM command.Your coding agent can read these notes before it upgrades. Set up the MCP server →