jstedfast/MailKit (MailKit)
### [`v4.5.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-450-2024-04-13)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/4.4.0...4.5.0)
- Added a new SmtpClient.RequireTLS property to fix sending mail via Strato.de.
(issue [#1737](https://togithub.com/jstedfast/MailKit/issues/1737))
- Fixed SmtpClient to track the most recent response from the SMTP server in order to include
it in SmtpProtocolExceptions caused by unexpected server disconnects to provide more context.
(issue [#1744](https://togithub.com/jstedfast/MailKit/issues/1744))
### [`v4.4.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-440-2024-03-02)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/4.3.0...4.4.0)
- Added net8.0 targets
- Split more sync/async logic to reduce allocations made by async state machines when
calling the synchronous public APIs instead of the async APIs.
(issue [#1335](https://togithub.com/jstedfast/MailKit/issues/1335))
- Fixed logic for formatting IMAP FETCH HEADER.FIELDS.NOT corner case that was exposed by newly
added unit tests.
- Fixed SmtpClient to disconnect during Authenticate/Async on socket errors.
- Fixed SmtpClient's re-EHLO logic to disconnect on errors.
- Added workaround for Zoho IMAP servers returning MODSEQ -1.
(issue [#1686](https://togithub.com/jstedfast/MailKit/issues/1686))
- Added workaround for some IMAP servers that use () instead of NIL for an unset Content-Location header
in the BODYSTRUCTURE response.
(issue [#1700](https://togithub.com/jstedfast/MailKit/issues/1700))
- Fixed an issue in the Socket.ConnectAsync logic that could result in unhandled exceptions on the
async thread if the ConnectAsync was cancelled.
(issue [#1703](https://togithub.com/jstedfast/MailKit/issues/1703))
- Added work-around for Yandex IMAP GetBodyPart() response not including content.
(issue [#1708](https://togithub.com/jstedfast/MailKit/issues/1708))
### [`v4.3.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-430-2023-11-11)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/4.2.0...4.3.0)
- Fixed an ArgumentOutOfRangeException error in Fetch(int min, int max, ...) where min and max were greater
than folder.Count. (issue [#1640](https://togithub.com/jstedfast/MailKit/issues/1640))
- Fixed parsing of IMAP FETCH (message/stream) responses with unsolicited FLAGS.
- Fixed support for the IMAP FILTERS extension. Previously this extension was not properly detected.
- When parsing IMAP CAPABILITIES, treat lone '+' tokens as atoms.
(issue [#1654](https://togithub.com/jstedfast/MailKit/issues/1654))
- Bumped MimeKit dependency to 4.3.0.
### [`v4.2.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-420-2023-09-02)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/4.1.0...4.2.0)
- Fixed a bug where the HttpProxyClient and HttpsProxyClient could end up reading the mail server greeting,
causing a connection failure for the ImapClient/Pop3Client/SmtpClient.
(issue [#1603](https://togithub.com/jstedfast/MailKit/issues/1603))
- Parse IMAP quota values as ulongs instead of uints for GMail compatibility.
(issue [#1602](https://togithub.com/jstedfast/MailKit/issues/1602))
- Added support for decoding SMTP DATA to the SmtpDataFilter.
(issue [#1607](https://togithub.com/jstedfast/MailKit/issues/1607))
- Added a Pop3Client.Size property. (issue [#1623](https://togithub.com/jstedfast/MailKit/issues/1623))
- Refactored more ImapClient commands to split sync/async implementations in order to improve
performance and reduce GC pressure. (issue [#1335](https://togithub.com/jstedfast/MailKit/issues/1335))
- Added new IMailFolder.GetStream() methods that just take a uid/index and a BodyPart.
- Added IMailFolder.GetStream/Async() methods that just take a uid or index.
- Improved initial `List` capacity estimation for `Fetch (IList, ...)`.
- Fixed ByteArrayBuilder.TrimNewLine() to check array bounds properly.
(issue [#1634](https://togithub.com/jstedfast/MailKit/issues/1634))
- Bumped MimeKit dependency to 4.2.0.
### [`v4.1.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-410-2023-06-17)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/4.0.0...4.1.0)
- Fixed queueing logic for pipelining SMTP and POP3 commands.
(issue [#1568](https://togithub.com/jstedfast/MailKit/issues/1568))
- Improve SslHandshakeException diagnostic messages.
(issue [#1554](https://togithub.com/jstedfast/MailKit/issues/1554))
- Bumped System.Formats.Asn1 dependency to 7.0.0.
- Bumped MimeKit dependency to 4.1.0.
### [`v4.0.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-400-2023-04-15)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/3.6.0...4.0.0)
- Marked the AccessRight and UniqueId structs as readonly.
- Fixed POP3 client logic to calculate the needed bytes before converting commands into into the output buffer.
- Ported to MimeKit v4.0 and BouncyCastle v2.1.1.
### [`v3.6.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-360-2023-03-04)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/3.5.0...3.6.0)
- Decrement ImapFolder.Count when ImapClient receives an untagged EXPUNGE notification and emit a CountChanged event.
(issue [#1509](https://togithub.com/jstedfast/MailKit/issues/1509))
- Avoid using the NAMESPACE command for Exchange 2003.
(issue [#1512](https://togithub.com/jstedfast/MailKit/issues/1512))
- Added support for rfc8970 (IMAP4 Extension: Message Preview Generation).
### [`v3.5.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-350-2023-01-27)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/3.4.3...3.5.0)
- Fixed bitmasking logic in SmtpClient.cs for deciding whether to use the BDAT command.
- Fixed HttpProxyClient to call GetConnectCommand() *before* connecting a socket to prevent memory leaks when
connecting fails.
- Improved the IMAP BODYSTRUCTURE parser to better handle broken responses.
- Fixed bug in Envelope.Parse/TryParse when given `(NIL NIL "" "localhost")`
(issue [#1471](https://togithub.com/jstedfast/MailKit/issues/1471))
- Fixed SMTP client logic to calculate the needed bytes before converting commands into into the output buffer.
(issue [#1498](https://togithub.com/jstedfast/MailKit/issues/1498))
- Fixed SmtpClient to replace \_'s with -'s in the default LocalDomain string (used in HELO/EHLO commands).
(issue [#1501](https://togithub.com/jstedfast/MailKit/issues/1501))
### [`v3.4.3`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-343-2022-11-25)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/3.4.2...3.4.3)
- Fixed potential memory leaks in Pop3Client.
- Reverted SMTP pipelining of the DATA command. (issue [#1459](https://togithub.com/jstedfast/MailKit/issues/1459))
- Fixed ImapFolder.Rename() to disallow renaming a folder to be a child of itself.
- Fixed SmtpStream.ReadResponse/Async() to handle buffers that do not contain a complete line.
(issue [#1467](https://togithub.com/jstedfast/MailKit/issues/1467))
### [`v3.4.2`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-342-2022-10-24)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/3.4.1...3.4.2)
- Fixed fetching of MessageSummaryItems.PreviewText if the octet count of the message body is 0.
(issue [#1430](https://togithub.com/jstedfast/MailKit/issues/1430))
- Modified ImapFolder.Search(SearchOptions.None, query) work the same as ImapFolder.Search(query).
(issue [#1437](https://togithub.com/jstedfast/MailKit/issues/1437))
- Improved performance of SmtpClient by reducing memory allocations and pipelining the DATA command when the PIPELINING
extension is available.
- Refactored sync and async SmtpClient APIs such that the synchronous APIs no longer call methods marked with async in order
to reduce AsyncMethodBuilder state machines/allocations.
- Modified SmtpClient to only send the ORCPT argument to RCPT TO if NOTIFY is specified.
- Improved performance of Pop3Client by reducing memory allocations.
- Refactored sync and async Pop3Client APIs such that the synchronous APIs no longer call methods marked with async in order
to reduce AsyncMethodBuilder state machines/allocations.
- Improved IMAP's BODY/BODYSTRUCTURE parser to be able to scan ahead multiple tokens in order to better handle syntactically
incorrect responses in a more graceful way.
(issue [#1446](https://togithub.com/jstedfast/MailKit/issues/1446))
- Improved IMAP's ENVELOPE parser to handle ("Microsoft Exchange Server" NIL NIL ".MISSING-HOST-NAME.") in a more graceful way.
(issue [#1451](https://togithub.com/jstedfast/MailKit/issues/1451))
### [`v3.4.1`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-341-2022-09-12)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/3.4.0...3.4.1)
- Reverted the socket connection change to allow Socket.Connect() to do DNS lookups for us. Turns out, Socket.Connect()
doesn't iterate over all returned IP addresses until it finds an IP address that it can successfully connect to
for a given hostname which is what we need to do.
### [`v3.4.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-340-2022-09-05)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/3.3.0...3.4.0)
- Fixed a bug that caused ImapFolder.Fetch/FetchAsync to throw TaskCanceledException instead of allowing
the correct exception to bubble up. (issue [#1415](https://togithub.com/jstedfast/MailKit/issues/1415))
- Simplified socket connection logic to allow Socket.Connect() to do DNS lookups for us.
- Updated common mail server SSL certificates.
- Dropped net5.0 support.
### [`v3.3.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-330-2022-06-11)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/3.2.0...3.3.0)
- Added work-around for IMAP BODYSTRUCTURE responses that have a NIL multipart body.
(issue [#1393](https://togithub.com/jstedfast/MailKit/issues/1393))
- Considerably reduced memory overhead from compiler-generated async/await Tasks allocations in the IMAP
implementation (mostly focused on FETCH commands/responses).
(issue [#1335](https://togithub.com/jstedfast/MailKit/issues/1335))
- Optimized FETCH response processing for the common case where FETCH responses are returned in sorted order.
- Fixed the IMAP Literal string reader to use UTF-8 with fallback to iso-8859-1 (previously just used iso-8859-1).
- Modified the IMAP ENVELOPE parser to combine ENVELOPE mailbox tokens if there are more than 4.
(issue [#1369](https://togithub.com/jstedfast/MailKit/issues/1369))
- Prevent TypeLoadExceptions in the SmtpClient static .ctor by catching NotSupportedExceptions thrown by
IPGlobalProperties.GetIPGlobalProperties() on platforms like WASM.
(issue [#1381](https://togithub.com/jstedfast/MailKit/issues/1381))
- Updated Google, GMX, and Yahoo! Mail SSL certificates.
- Dropped support for net452 and net461.
- Added support for net462.
### [`v3.2.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-320-2022-03-26)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/3.1.1...3.2.0)
- Do not use ApplicationProtocols with SSL. (issue [#1352](https://togithub.com/jstedfast/MailKit/issues/1352))
- Updated GMail, Yahoo, and Outlook.com certificates.
- Lazy-initialize MessageSummary.Keywords. This reduces memory usage when the client isn't requesting Flags/Keywords.
- Hard-cache some IMAP FETCH-related tokens in order to relieve GC pressure for commands like FETCH where there can
be a LOT of responses containing the same tokens over and over again.
- Converted some IMAP async Task methods to use ValueTask to reduce GC pressure.
- Reduced string allocations in the IMAP logic by avoiding use of ToUpperInvariant().
- Added non-async implementations for ImapStream APIs to be used by the synchronous public APIs to avoid some async overhead.
- Reduce MemoryStream (and thus byte\[]) allocations by using a new ByteArrayBuilder.
- Rewrote the IMAP CAPABILITY parser to avoid allocating strings.
- Fixed some cases where IMAP NIL tokens were not compared case insensitively.
- Always include the VERSION block in NTLM messages. (issue [#1340](https://togithub.com/jstedfast/MailKit/issues/1340))
- Target .NET Framework v4.6.1 instead of v4.6 to match the changes in MimeKit.
- Capture the Socket timeout value in Read/WriteAsync() to have it in case of exceptions.
(issue [#1327](https://togithub.com/jstedfast/MailKit/issues/1327))
### [`v3.1.1`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-311-2022-01-30)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/3.1.0...3.1.1)
- Reduced string allocations in Pop3Engine's capability parser.
- Updated GMail and Outlook.com SSL certificates.
- Modified SmtpClient to try and use the system hostname in EHLO/HELO commands.
(issue [#1314](https://togithub.com/jstedfast/MailKit/issues/1314))
### [`v3.1.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-310-2022-01-14)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/3.0.0...3.1.0)
- Fixed NTLM to always prefer the supplied domain over the TargetName or TargetInfo.DomainName.
(issue [#582](https://togithub.com/jstedfast/MailKit/issues/582))
- Updated GMail and Outlook.com SSL certificate info.
- Added a new SslCipherSuite property to each client that allows developers to get information
about the SSL/TLS cipher suite that was negotiated with the server.
(pull [#1312](https://togithub.com/jstedfast/MailKit/pull/1312))
- Reduced string allocations in SmtpClient's EHLO capability parsing logic.
- Default ProtocolLogger.RedactSecrets to true for added added security.
- Added work-around for parsing malformed GMail ENVELOPE responses that reverse the name and address components
of the Sender address. (pull [#1319](https://togithub.com/jstedfast/MailKit/pull/1319))
- Added net6.0 to the list of TargetFrameworks.
### [`v3.0.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-300-2021-12-11)
[Compare Source](https://togithub.com/jstedfast/MailKit/compare/2.15.0...3.0.0)
- Removed APIs marked as \[Obsolete] in 2.x.
- Simplify Fetch()/FetchAsync() APIs by using a new IFetchRequest parameter instead. Made previous APIs into
extension methods to aid in porting from 2.x.
- Replaced Add/Remove/SetFlags() APIs with Store()/StoreAsync() and simplified the APIs by using a new
IStoreFlagsRequest parameter. Made previous APIs into extension methods to aid in porting from 2.x.
- Replaced Add/Remove/SetLabels() APIs with Store()/StoreAsync() and simplified the APIs by using a new
IStoreLabelsRequest parameter. Made previous APIs into extension methods to aid in porting from 2.x.
- Simplify Append()/AppendAsync() APIs by using a new IAppendRequest parameter instead. Made previous APIs into
extension methods to aid in porting from 2.x.
- Simplify Replace()/ReplaceAsync() APIs by using a new IReplaceRequest parameterinstead. Made previous APIs into
extension methods to aid in porting from 2.x.
- Updated SmtpClient.Send()/SendAsync() methods to return a string.
(issue [#1161](https://togithub.com/jstedfast/MailKit/issues/1161))
- Added support for the SCRAM-SHA\*-PLUS SASL mechanisms.
(issue [#950](https://togithub.com/jstedfast/MailKit/issues/950))
- Added authzid support for SCRAM SASL mechanisms.
- Added support for the ANONYMOUS SASL mechanism.
- Added support for an HttpsProxyClient. (issue [#1251](https://togithub.com/jstedfast/MailKit/issues/1251))
- Added AcceptedKeywords and PermanentKeywords to IMailFolder.
(issue [#1256](https://togithub.com/jstedfast/MailKit/issues/1256))
- Rewrote NTLM support based on official specs. Now supports channel-binding and using the default system credentials.
- Modified ImapFolder.Fetch(int, int, ...) to shortcut if ImapFolder.Count == 0.
- Updated SmtpClient to append an ORCPT arg to RCPT TO commands and to hex-encode the ENVID parameter value.
- Improved/simplified logic for ranking SASL authentication mechisms for each client.
- Added SaslMechanism.ChallengeAsync() to facilitate future SASL mechanisms that may need to make network requests
such as Kerberos/GSSAPI and perhaps even future/custom OAuth2 implementations.
- Always set SearchResults.Count/Min/Max properties if we can.
- Throw TimeoutException is case of a network time out.
(issue [#1269](https://togithub.com/jstedfast/MailKit/issues/1269))
- Fixed parsing of IMAP flag lists to handle lowercase flag names.
(issue [#1277](https://togithub.com/jstedfast/MailKit/issues/1277))
- Use OrdinalIgnoreCase when comparing "EARLIER" atom token.
- Avoid unnecessary string copies. (issue [#1292](https://togithub.com/jstedfast/MailKit/pull/1292))
- Drop support for .NET 4.5 and replace it with .NET 4.5.2
- Simplified event emissions based on EXISTS and EXPUNGED notifications. A CountChanged event is now *always*
emitted when the server sends an EXISTS notification.
(issue [#1288](https://togithub.com/jstedfast/MailKit/issues/1288))
Configuration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
2.15.0
->4.5.0
Release Notes
jstedfast/MailKit (MailKit)
### [`v4.5.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-450-2024-04-13) [Compare Source](https://togithub.com/jstedfast/MailKit/compare/4.4.0...4.5.0) - Added a new SmtpClient.RequireTLS property to fix sending mail via Strato.de. (issue [#1737](https://togithub.com/jstedfast/MailKit/issues/1737)) - Fixed SmtpClient to track the most recent response from the SMTP server in order to include it in SmtpProtocolExceptions caused by unexpected server disconnects to provide more context. (issue [#1744](https://togithub.com/jstedfast/MailKit/issues/1744)) ### [`v4.4.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-440-2024-03-02) [Compare Source](https://togithub.com/jstedfast/MailKit/compare/4.3.0...4.4.0) - Added net8.0 targets - Split more sync/async logic to reduce allocations made by async state machines when calling the synchronous public APIs instead of the async APIs. (issue [#1335](https://togithub.com/jstedfast/MailKit/issues/1335)) - Fixed logic for formatting IMAP FETCH HEADER.FIELDS.NOT corner case that was exposed by newly added unit tests. - Fixed SmtpClient to disconnect during Authenticate/Async on socket errors. - Fixed SmtpClient's re-EHLO logic to disconnect on errors. - Added workaround for Zoho IMAP servers returning MODSEQ -1. (issue [#1686](https://togithub.com/jstedfast/MailKit/issues/1686)) - Added workaround for some IMAP servers that use () instead of NIL for an unset Content-Location header in the BODYSTRUCTURE response. (issue [#1700](https://togithub.com/jstedfast/MailKit/issues/1700)) - Fixed an issue in the Socket.ConnectAsync logic that could result in unhandled exceptions on the async thread if the ConnectAsync was cancelled. (issue [#1703](https://togithub.com/jstedfast/MailKit/issues/1703)) - Added work-around for Yandex IMAP GetBodyPart() response not including content. (issue [#1708](https://togithub.com/jstedfast/MailKit/issues/1708)) ### [`v4.3.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-430-2023-11-11) [Compare Source](https://togithub.com/jstedfast/MailKit/compare/4.2.0...4.3.0) - Fixed an ArgumentOutOfRangeException error in Fetch(int min, int max, ...) where min and max were greater than folder.Count. (issue [#1640](https://togithub.com/jstedfast/MailKit/issues/1640)) - Fixed parsing of IMAP FETCH (message/stream) responses with unsolicited FLAGS. - Fixed support for the IMAP FILTERS extension. Previously this extension was not properly detected. - When parsing IMAP CAPABILITIES, treat lone '+' tokens as atoms. (issue [#1654](https://togithub.com/jstedfast/MailKit/issues/1654)) - Bumped MimeKit dependency to 4.3.0. ### [`v4.2.0`](https://togithub.com/jstedfast/MailKit/blob/HEAD/ReleaseNotes.md#MailKit-420-2023-09-02) [Compare Source](https://togithub.com/jstedfast/MailKit/compare/4.1.0...4.2.0) - Fixed a bug where the HttpProxyClient and HttpsProxyClient could end up reading the mail server greeting, causing a connection failure for the ImapClient/Pop3Client/SmtpClient. (issue [#1603](https://togithub.com/jstedfast/MailKit/issues/1603)) - Parse IMAP quota values as ulongs instead of uints for GMail compatibility. (issue [#1602](https://togithub.com/jstedfast/MailKit/issues/1602)) - Added support for decoding SMTP DATA to the SmtpDataFilter. (issue [#1607](https://togithub.com/jstedfast/MailKit/issues/1607)) - Added a Pop3Client.Size property. (issue [#1623](https://togithub.com/jstedfast/MailKit/issues/1623)) - Refactored more ImapClient commands to split sync/async implementations in order to improve performance and reduce GC pressure. (issue [#1335](https://togithub.com/jstedfast/MailKit/issues/1335)) - Added new IMailFolder.GetStream() methods that just take a uid/index and a BodyPart. - Added IMailFolder.GetStream/Async() methods that just take a uid or index. - Improved initial `ListConfiguration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.