// the find
jstedfast/MailKit
A cross-platform .NET library for IMAP, POP3, and SMTP.
MailKit is the de facto standard email client library for .NET — it handles SMTP, POP3, and IMAP with proper RFC compliance, async support, and enough IMAP extension coverage to handle real-world servers including Gmail. If you're doing anything beyond basic SMTP sending in a .NET app, this is the library you reach for.
The IMAP implementation is genuinely thorough: QRESYNC, CONDSTORE, IDLE, MOVE, X-GM-EXT1, REPLACE, and 30+ other extensions are all there. The MIME parser (MimeKit) is fast — the README claims 25x faster than OpenPOP.NET — and tolerant of malformed input rather than throwing on unexpected content-type parameters. Async APIs are first-class, not bolted on, and every operation takes a CancellationToken. The protocol logger built into the library makes debugging server compatibility issues straightforward — you get the raw IMAP wire exchange, which saves hours when a server misbehaves.
OAuth2 setup is not a solved problem here: the library provides the SASL mechanisms but leaves you to implement the token exchange flow yourself, and the Google/Exchange OAuth2 guides are long markdown files you have to read carefully rather than a turnkey helper. The connection model is one-connection-per-client, so if you're building a multi-account or high-concurrency mail client you'll be managing a pool of ImapClient instances manually. High-level abstractions above the protocol layer (like 'watch this folder for new messages and call me back') require you to wire up IDLE yourself. NTLM is implemented from scratch in managed code rather than delegating to the OS — that's usually fine but is a maintenance surface and occasionally lags behind Windows-native behavior.