diff --git a/MailKit/MailKit.csproj b/MailKit/MailKit.csproj index b661cccd13..511a42bf00 100644 --- a/MailKit/MailKit.csproj +++ b/MailKit/MailKit.csproj @@ -3,7 +3,7 @@ An Open Source cross-platform .NET mail-client library that is based on MimeKit and optimized for mobile devices. MailKit - 3.1.1 + 3.2.0 Jeffrey Stedfast 8 netstandard2.0;netstandard2.1;net452;net461;net47;net48;net5.0;net6.0 diff --git a/MailKit/MailKitLite.csproj b/MailKit/MailKitLite.csproj index c9195fb220..5f8e0e4c6c 100644 --- a/MailKit/MailKitLite.csproj +++ b/MailKit/MailKitLite.csproj @@ -3,7 +3,7 @@ An Open Source cross-platform .NET mail-client library that is based on MimeKit and optimized for mobile devices. MailKit - 3.1.1 + 3.2.0 Jeffrey Stedfast 8 netstandard2.0;netstandard2.1;net452;net461;net47;net48;net5.0;net6.0 diff --git a/MailKit/MailService.cs b/MailKit/MailService.cs index d847502b81..89af9248ff 100644 --- a/MailKit/MailService.cs +++ b/MailKit/MailService.cs @@ -438,7 +438,8 @@ internal static bool IsKnownMailServerCertificate (X509Certificate2 certificate) || (serial == "68D51349AC1318C30A000000012F9258" && fingerprint == "26C56B1B8BAF1DD0CD79B121E91C83F41C35F66B") // Expires 4/10/2022 11:06:02 PM || (serial == "00820A16614E8DFB400A0000000133FA85" && fingerprint == "3D66900B34DA07C9A59D5A0003FAC2A49A87165F") // Expires 5/1/2022 11:05:35 PM || (serial == "00A1FAC873319939451200000000036E34" && fingerprint == "EED4B1F452091841FFF0101B3CD761F7047E92C2") // Expires 5/12/2022 7:05:44 AM - || (serial == "00C471BACE52383A8C0A0000000138EFCA" && fingerprint == "4EBB0BBB6B0EDB1260EF5E2F3CF17327395E7D71"); // Expires 5/22/2022 11:05:57 PM + || (serial == "00C471BACE52383A8C0A0000000138EFCA" && fingerprint == "4EBB0BBB6B0EDB1260EF5E2F3CF17327395E7D71") // Expires 5/22/2022 11:05:57 PM + || (serial == "00C4CD3ED3DB3658210A000000013B07A9" && fingerprint == "8022737C26B4EC810A7A7762D92B9DFAE4220294"); // Expires 6/9/2022 7:17:51 AM default: return false; } @@ -449,7 +450,8 @@ internal static bool IsKnownMailServerCertificate (X509Certificate2 certificate) || (serial == "7B9C3FD9595DB8FE0A000000012F9265" && fingerprint == "D6767B51E288B4521BA148C057D6872D74ABCCC6") // Expires 4/10/2022 11:06:17 PM || (serial == "690FA8ABF8944DE70A0000000133FA87" && fingerprint == "3B5911EB64E63E7038D105696E0CACABCABA3CE4") // Expires 5/1/2022 11:05:50 PM || (serial == "5BF3FD133D8AD8AA0A000000013788F1" && fingerprint == "E877F730265E3C8BBC7264754682A69244E3A8BC") // Expires 5/12/2022 7:05:58 AM - || (serial == "00E0296234B551A4761200000000044EEF" && fingerprint == "09F02450794512E784EEAFB7849668A24411CB11"); // Expires 5/22/2022 11:06:12 PM + || (serial == "00E0296234B551A4761200000000044EEF" && fingerprint == "09F02450794512E784EEAFB7849668A24411CB11") // Expires 5/22/2022 11:06:12 PM + || (serial == "009890C37A3AB544BA0A000000013B07AB" && fingerprint == "A59153D0D8F42BADB27D8E794B8DE588504CAF1B"); // Expires 6/9/2022 7:18:07 AM default: return false; } @@ -460,7 +462,8 @@ internal static bool IsKnownMailServerCertificate (X509Certificate2 certificate) || (serial == "6AA71CAC662B12330A000000012F927C" && fingerprint == "71F149282CF0497750FDE4FA9B0593ADFC5BFA6A") // Expires 4/10/2022 11:07:35 PM || (serial == "00B8395DF841DD3C131200000000006058" && fingerprint == "621652D48C9F3E0FBB173A6BFEF20A8FAC5B689C") // Expires 5/1/2022 11:07:04 PM || (serial == "00F8654A0FD5B01E3A0A000000013788F7" && fingerprint == "9CE34FAB10006D87F5584E713033AD7A1F151C9A") // Expires 5/12/2022 7:07:12 AM - || (serial == "380477AB88A384430A0000000138EFD2" && fingerprint == "7C7A0F996AA1125D8326E0128CCDF3F02A6E8A80"); // Expires 5/22/2022 11:07:40 PM + || (serial == "380477AB88A384430A0000000138EFD2" && fingerprint == "7C7A0F996AA1125D8326E0128CCDF3F02A6E8A80") // Expires 5/22/2022 11:07:40 PM + || (serial == "43616C5D100EC6840A000000013B07B3" && fingerprint == "87AB1BDBEA912DB95B9A5F8B55F6FCFFF7939082"); // Expires 6/9/2022 7:19:37 AM default: return false; } diff --git a/MailKit/Properties/AssemblyInfo.cs b/MailKit/Properties/AssemblyInfo.cs index 1ebd3eb623..43a802b7e2 100644 --- a/MailKit/Properties/AssemblyInfo.cs +++ b/MailKit/Properties/AssemblyInfo.cs @@ -79,6 +79,6 @@ // // If there have only been bug fixes, bump the Micro Version and/or the Build Number // in the AssemblyFileVersion attribute. -[assembly: AssemblyInformationalVersion ("3.1.1.0")] -[assembly: AssemblyFileVersion ("3.1.1.0")] -[assembly: AssemblyVersion ("3.1.0.0")] +[assembly: AssemblyInformationalVersion ("3.2.0.0")] +[assembly: AssemblyFileVersion ("3.2.0.0")] +[assembly: AssemblyVersion ("3.2.0.0")] diff --git a/ReleaseNotes.md b/ReleaseNotes.md index e9b985f878..ef1d7b9695 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,5 +1,23 @@ # Release Notes +### MailKit 3.2.0 (2022-03-26) + +* Do not use ApplicationProtocols with SSL. (issue [#1352](https://github.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://github.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://github.com/jstedfast/MailKit/issues/1327)) + ### MailKit 3.1.1 (2022-01-30) * Reduced string allocations in Pop3Engine's capability parser. diff --git a/nuget/MailKit.nuspec b/nuget/MailKit.nuspec index 7b596e08b3..2d5b2f92e3 100644 --- a/nuget/MailKit.nuspec +++ b/nuget/MailKit.nuspec @@ -2,7 +2,7 @@ MailKit - 3.1.1 + 3.2.0 MailKit Jeffrey Stedfast Jeffrey Stedfast @@ -26,9 +26,19 @@ Features include: An Open Source .NET mail-client library for Windows, Mac, Linux, and mobile platforms such as iOS and Android. -* 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) +* Do not use ApplicationProtocols with SSL. (issue #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) +* 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) .NET Foundation and Contributors en-US @@ -62,32 +72,32 @@ Features include: - + - + - + - + - + - + - + - + diff --git a/nuget/MailKitLite.nuspec b/nuget/MailKitLite.nuspec index 49bfcb5d66..653054f12a 100644 --- a/nuget/MailKitLite.nuspec +++ b/nuget/MailKitLite.nuspec @@ -2,7 +2,7 @@ MailKitLite - 3.1.1 + 3.2.0 MailKit Jeffrey Stedfast Jeffrey Stedfast @@ -26,9 +26,19 @@ Features include: An Open Source .NET mail-client library for Windows, Mac, Linux, and mobile platforms such as iOS and Android. -* 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) +* Do not use ApplicationProtocols with SSL. (issue #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) +* 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) .NET Foundation and Contributors en-US @@ -62,32 +72,32 @@ Features include: - + - + - + - + - + - + - + - + diff --git a/samples/ImapClientDemo.Android/ImapClientDemo.Android/ImapClientDemo.Android.csproj b/samples/ImapClientDemo.Android/ImapClientDemo.Android/ImapClientDemo.Android.csproj index 3ea3a7751a..d2bf3238e6 100644 --- a/samples/ImapClientDemo.Android/ImapClientDemo.Android/ImapClientDemo.Android.csproj +++ b/samples/ImapClientDemo.Android/ImapClientDemo.Android/ImapClientDemo.Android.csproj @@ -48,7 +48,7 @@ - + diff --git a/samples/ImapClientDemo.iOS/ImapClientDemo.iOS/ImapClientDemo.iOS.csproj b/samples/ImapClientDemo.iOS/ImapClientDemo.iOS/ImapClientDemo.iOS.csproj index aad085453e..1a74cd73be 100644 --- a/samples/ImapClientDemo.iOS/ImapClientDemo.iOS/ImapClientDemo.iOS.csproj +++ b/samples/ImapClientDemo.iOS/ImapClientDemo.iOS/ImapClientDemo.iOS.csproj @@ -72,7 +72,7 @@ - + diff --git a/samples/ImapClientDemo/ImapClientDemo/ImapClientDemo.csproj b/samples/ImapClientDemo/ImapClientDemo/ImapClientDemo.csproj index 594b0aea5f..de5a25e953 100644 --- a/samples/ImapClientDemo/ImapClientDemo/ImapClientDemo.csproj +++ b/samples/ImapClientDemo/ImapClientDemo/ImapClientDemo.csproj @@ -47,7 +47,7 @@ - + diff --git a/samples/ImapIdle/ImapIdle/ImapIdle.csproj b/samples/ImapIdle/ImapIdle/ImapIdle.csproj index 222111a89c..14deaafd85 100644 --- a/samples/ImapIdle/ImapIdle/ImapIdle.csproj +++ b/samples/ImapIdle/ImapIdle/ImapIdle.csproj @@ -30,7 +30,7 @@ - + diff --git a/submodules/MimeKit b/submodules/MimeKit index cb45cfdc16..4de3405acc 160000 --- a/submodules/MimeKit +++ b/submodules/MimeKit @@ -1 +1 @@ -Subproject commit cb45cfdc16dd76b109987353cb85b0985dc52993 +Subproject commit 4de3405acc85917b98b9d346ed6b4f579caad963