diff --git a/CHANGELOG.md b/CHANGELOG.md index ac2bd856..6e787043 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,34 @@ +## 0.3.0 +- [KevinBLT](https://github.com/KevinBLT) contributed the following improvements and features: + * Check out the experimental [DKIM](https://tools.ietf.org/html/rfc6376) signing of messages. + * Enjoy the improved the performance of `QuotedPrintable` encoding. + * BCC header is now stripped from messages before sending them via SMTP +- [A.Zulli](https://github.com/azulli) contributed major IMAP features in this release: + * Sort messages with `ImapClient.sortMessages(...)` [SORT](https://tools.ietf.org/html/rfc5256) - and also use the extended sort mechanism with specifying `returnOptions` on servers with [ESORT](https://tools.ietf.org/html/rfc5267). + * `ImapClient.searchMessages(...)` now accepts `List` parameter for extending the search according to the [ESEARCH](https://tools.ietf.org/html/rfc4731) standard. + * Support `PARTIAL` responses according to the [CONTEXT](https://tools.ietf.org/html/rfc5267) IMAP extension. + * Use the LIST extensions: + * [rfc5258](https://tools.ietf.org/html/rfc5258): `LIST` command extensions + * [rfc5819](https://tools.ietf.org/html/rfc5819): return `STATUS` in extended lists + * [rfc6154](https://tools.ietf.org/html/rfc6154): `SPECIAL-USE` mailboxes +- [Alexander Sotnikov](https://github.com/SotnikAP) fixed `POP3` so that you can now use the `PopClient` as intended. +- SMTP improvements: + * You can now send messages via the SMTP `BDAT` command using `SmtpClient.sendChunkedMessage()` / `sendChunkedMessageData()` / `sendChunkedMessageText()`. + * You don't require a `MimeMessage` to send any more when you send messages either via `SmtpClient.sendMessageData()` or `SmtpClient.sendMessageText()`. +- MessageBuilder / MIME generation improvements: + * Attachments are now also added when forrwarding a message without quoting in `MessageBuilder.prepareForwardMessage()`. + * You can now also prepend parts by setting `insert` to `true` when calling `addPart()`. +- Other improvements and bugfixes: + * Remove some dependencies and relax constraints on some so that we all get quicker through the `null-safety` challenge. + * Fixed decoding of 8bit messages that use a different charset than UTF8 + * Fixed header decoding in some edge cases + * Some fixes in parsing personal names in email addresses + * Support Chinese encodings `GBK` and `GB-2312` + * Improve reconnecting when using the high level API + * Only download the `ENVELOPE` information when a new mail is detected in high level API +- Breaking changes: + * `MessageBuilder.replyToMessage` is renamed to `MessageBuilder.originalMessage` + ## 0.2.1 - Allow to specify `connectionTimeout` for all low level clients - Support non-ASCII IMAP searches when supported by server diff --git a/README.md b/README.md index fe1dd9e4..d805bc85 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Add this dependency your pubspec.yaml file: ``` dependencies: - enough_mail: ^0.1.0 + enough_mail: ^0.3.0 ``` The latest version or `enough_mail` is [![enough_mail version](https://img.shields.io/pub/v/enough_mail.svg)](https://pub.dartlang.org/packages/enough_mail). @@ -294,12 +294,13 @@ This is how you contribute: Thank you in advance! ## Features -### Done +### Base standards * ✅ [IMAP4 rev1](https://tools.ietf.org/html/rfc3501) support -* ✅ basic [SMTP](https://tools.ietf.org/html/rfc5321) support +* ✅ [SMTP](https://tools.ietf.org/html/rfc5321) support * ✅ [POP3](https://tools.ietf.org/html/rfc1939) support * ✅ [MIME](https://tools.ietf.org/html/rfc2045) parsing and generation support +### IMAP extensions The following IMAP extensions are supported: * ✅ [IMAP IDLE](https://tools.ietf.org/html/rfc2177) * ✅ [IMAP METADATA](https://tools.ietf.org/html/rfc5464) @@ -307,8 +308,22 @@ The following IMAP extensions are supported: * ✅ [MOVE](https://tools.ietf.org/html/rfc6851) * ✅ [CONDSTORE](https://tools.ietf.org/html/rfc7162) * ✅ [QRESYNC](https://tools.ietf.org/html/rfc7162) -* ✅ [ENABLE](https://tools.ietf.org/html/rfc5161) +* ✅ [ENABLE](https://tools.ietf.org/html/rfc5161) +* ✅ [QUOTA](https://tools.ietf.org/html/rfc2087) * ✅ [IMAP Support for UTF-8](https://tools.ietf.org/html/rfc6855) +* ✅ [ESEARCH](https://tools.ietf.org/html/rfc4731) +* ✅ SORT command of [SORT and THREAD](https://tools.ietf.org/html/rfc5256) +* ✅ ESORT and PARTIAL from [Contexts](https://tools.ietf.org/html/rfc5267) +* ✅ List extensions ([rfc5258](https://tools.ietf.org/html/rfc5258), [rfc5819](https://tools.ietf.org/html/rfc5819), [rfc6154](https://tools.ietf.org/html/rfc6154)) + +### SMTP Extensions +The following SMTP extensions are supported: +* ✅ [8-bit MIME](https://tools.ietf.org/html/rfc6152) + +### Security +The following security extensions are supported: +* ✅ Partial signing of messages using [DKIM](https://tools.ietf.org/html/rfc6376) + ### Supported encodings Character encodings: @@ -317,6 +332,7 @@ Character encodings: * ISO-8859-1 (latin-1) * ISO-8859-2 - 16 (latin-2 - 16) * Windows-1250, 1251, 1252 +* GB-2312 and GBK Transfer encodings: * [Quoted-Printable (Q)](https://tools.ietf.org/html/rfc2045#section-6.7) @@ -324,11 +340,6 @@ Transfer encodings: ### To do * Compare [issues](https://github.com/Enough-Software/enough_mail/issues) -* hardening & bugfixing -* improve performance -* support [Message Preview Generation](https://datatracker.ietf.org/doc/draft-ietf-extra-imap-fetch-preview/) -* support [WebPush IMAP Extension](https://github.com/coi-dev/coi-specs/blob/master/webpush-spec.md) -* support [Open PGP](https://tools.ietf.org/html/rfc4880) ### Develop and Contribute * To start check out the package and then run `pub run test` to run all tests. diff --git a/pubspec.yaml b/pubspec.yaml index 56693344..08d7f958 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: enough_mail -description: IMAP, POP3 and SMTP email clients in pure Dart. Choose between a low level and a high level API for mailing. -version: 0.2.1 +description: IMAP, POP3 and SMTP email clients in pure Dart. Choose between a low level and a high level API for mailing. Parse and generate MIME messages. +version: 0.3.0 homepage: https://github.com/Enough-Software/enough_mail environment: @@ -12,6 +12,7 @@ dependencies: crypto: '>=2.0.0 <4.0.0' basic_utils: '>=1.7.0 <4.0.0' xml: '>=4.0.0 <6.0.0' + intl: '>= 0.15.0 <2.0.0' encrypt: '>=4.0.0 <6.0.0' enough_serialization: ^1.3.0 #path: ../enough_serialization