Skip to content

Latest commit

 

History

History
182 lines (143 loc) · 7.99 KB

ReleaseNotes.md

File metadata and controls

182 lines (143 loc) · 7.99 KB

Release Notes

MimeKit 1.2.3

  • Fixed TextToFlowed logic that stripped trailing spaces.
  • Switched to PCL Profile78 to support Xamarin.Forms.

MimeKit 1.2.2

  • Added a MultipartAlternative class which adds some useful convenience methods and properties for use with the multipart/alternative mime-type.
  • Fixed MimeKitLite's MimeParser to use TnefPart for the ms-tnef mime-types.
  • Fixed MimeMessage.TextBody to convert format=flowed into plain text.
  • Made BoundStream.LeaveOpen protected instead of private.
  • Fixed ChainedStream to dispose child streams when it is disposed.
  • Obsoleted MultipartEncrypted.Create() methods in favor of equivalent Encrypt() and SignAndEncrypt() methods to make them a bit more intuitive.
  • Added a MimeVisitor class that implements the visitor pattern for visiting MIME nodes.

MimeKit 1.2.1

  • Added a Format property to ContentType.
  • Added a TryGetValue() method to ParameterList.
  • Added IsFlowed and IsRichText convenience properties to TextPart.
  • Fixed the HtmlToHtml converter to properly handle HTML text that begins with leading text data.
  • Fixed MimeParser.ParseHeaders() to handle input that does not end with a blank line. (issue #142)
  • Renamed MimeEntityConstructorInfo to MimeEntityConstructorArgs.
  • Modified the MimeParser to use TextPart to represent application/rtf.

MimeKit 1.2.0

  • Force the use of the rfc2047 "B" encoding for ISO-2022-JP. (issue #139)
  • Added some text converters to convert between various text formats including format=flowed and HTML.

MimeKit 1.0.15

  • Fixed MimeMessage.WriteTo() to be thread-safe. (issue #138)

MimeKit 1.0.14

  • Added support for .NET 3.5.
  • Added a convenience CmsSigner .ctor that takes an X509Certificate2 argument.
  • Fixed BodyBuilder to never return a TextPart w/ a null ContentObject.
  • Fixed TextPart.GetText() to protect against NullReferenceExceptions if the ContentObject is null.
  • Fixed MimeFilterBase.EnsureOutputSize() to initialize OutputBuffer if it is null. Prevents NullReferenceExceptions in obscure corner cases. (issue #135)
  • Added a TnefAttachFlags enum which is used to determine if image attachments in MS-TNEF data are meant to have a Content-Disposition of "inline" when extracted as MIME attachments. (issue #129)
  • Fixed TnefPart.ConvertToMessage() and ExtractAttachments() to use the PR_ATTACH_MIME_TAG property to determine the intended mime-type for extracted attachments.
  • Catch DecoderFallbackExceptions in MimeMessage.ToString() and fall back to Latin1. (issue #137)

MimeKit 1.0.13

  • Added a work-around for a bug in Thunderbird's multipart/related implementation. (issue #124)
  • Improved MimeMessage.CreateFromMailMessage() a bit more to avoid creating empty From, Reply-To, To, Cc and/or Bcc headers.
  • Modified the HeaderIdExtensions to only be available for the HeaderId enum values.

MimeKit 1.0.12

  • Modified InternetAddressList.Equals() to return true if the lists contain the same addresses even if they are in different orders. (issue #118)
  • Allow S/MIME certificates with the NonRepudiation key usage to be used for signing. (issue #119)
  • Don't change the Content-Transfer-Encoding of MIME parts being encrypted as part of a multipart/encrypted. (issue #122)
  • Fixed logic to decide if a PGP secret key is expired. (issue #120)
  • Added support for SecureMailboxAddresses to OpenPgpContext to allow key lookups by fingerprints instead of email addresses.

MimeKit 1.0.11

  • Added the ContentDisposition.FormData string constant.
  • Allow the ContentDisposition.Disposition property to be set to values other than "attachment" and "inline". (issue #112)
  • Shortened the length of the local-part of auto-generated Message-Ids.
  • Fixed MimeMessage.CreateFromMailMessage() to not duplicate From/To/Cc/etc addresses if the System.Net.Mail.MailMessage has been sent via System.Net.Mail.SmtpClient prior to calling MimeMessage.CreateFromMailMessage(). (issue #115)
  • When parsing S/MIME digital signatures, don't import the full certificate chain. (issue #110)
  • Added immutability-friendly .ctor to MimeMessage for use with languages such as F#. (issue #116)

MimeKit 1.0.10

  • Ignore semi-colons in Content-Transfer-Encoding headers to work around broken mailers.
  • Added ParserOptions.ParameterComplianceMode (defaults to RfcComoplianceMode.Loose) which works around unquoted parameter values in Content-Type and Content-Disposition headers. (issue #106)
  • Modified the MimeParser to handle whitespace between header field names and the ':'.
  • Probe to make sure that various System.Text.Encodings are available before adding aliases for them (some may not be available depending on the platform).
  • Added a MimePart.GetBestEncoding() overload that takes a maxLineLength argument.
  • Modified MultipartSigned to use 78 characters as the max line length rather than 998 characters. (issue #107)

MimeKit 1.0.9

  • Added a new MessageDispositionNotification MimePart subclass to represent message/disposition-notification parts.
  • Fixed the TNEF parser to gracefully deal with duplicate attachment properties.

MimeKit 1.0.8

  • Modified the parser to accept Message-Id values without a domain (i.e. "<local-part@>").
  • Fixed a NullReferenceException in MimeMessage.BodyParts in cases where a MessagePart has a null Message.
  • Renamed DateUtils.TryParseDateTime() to DateUtils.TryParse() (the old API still exists but has been marked [Obsolete]).
  • Renamed MimeUtils.TryParseVersion() to MimeUtils.TryParse() (the old API still exists but has been marked [Obsolete]).
  • Fixed S/MIME support to gracefully deal with badly formatted signature timestamps which incrorectly use leap seconds. (issue #103)

MimeKit 1.0.7

  • Fixed TnefPropertyReader.GetEmbeddedMessageReader() to skip the Guid.
  • When decrypting PGP data, iterate over all encrypted packets to find one that can be decrypted (i.e. the private key exists in the user's keychain).
  • Updated WindowsSecureMimeContext to respect SecureMailboxAddresses like the other backends. (issue #100)
  • Added a Pkcs9SigningTime attribute to the CmsSigner for WindowsSecureMimeContext. (issue #101)

MimeKit 1.0.6

  • Vastly improved MS-TNEF support. In addition to being fixed to properly extract the AttachData property of an Attachment attribute, more metadata is captured and translated to the MIME equivalents (such as attachment creation and modification times, the size of the attachment, and the display name).
  • Migrated the iOS assemblies to Xamarin.iOS Unified API for 64-bit support.

Note: If you are not yet ready to port your iOS application to the Unified API, you will need to stick with the 1.0.5 release. The Classic MonoTouch API is no longer supported.

MimeKit 1.0.5

  • Fixed out-of-memory error when encoding some long non-ASCII parameter values in Content-Type and Content-Disposition headers.

MimeKit 1.0.4

  • Added workaround for msg-id tokens with multiple domains (e.g. id@domain1@domain2).
  • Added convenience methods to Header to allow the use of charset strings.
  • Added more HeaderList.Replace() method overloads for convenience.
  • Added a FormatOptions property to disallow the use of mixed charsets when encoding headers (issue #139).

MimeKit 1.0.3

  • Improved MimeMessage.TextBody and MimeMessage.HtmlBody logic. (issue #87)
  • Added new overrides of TextPart.GetText() and SetText() methods that take a charset string argument instead of a System.Text.Encoding.
  • Fixed charset fallback logic to work properly (it incorrectly assumed that by default, Encoding.UTF8.GetString() would throw an exception when it encountered illegal byte sequences). (issue #88)
  • Fixed S/MIME logic for finding X.509 certificates to use for encipherment. (issue #89)

MimeKit 1.0.2

  • Fixed MimeMessage.HtmlBody and MimeMessage.TextBody to properly handle nested multipart/alternatives (only generated by automated mailers).

MimeKit 1.0.1

  • Added MimeMessage.HtmlBody and MimeMessage.TextBody convenience properties.
  • Added TextPart.IsPlain and TextPart.IsHtml convenience properties.