enough_mail

IMAP, POP3 and SMTP clients for Dart developers. Contains both low level as well as a high level API.

MPL-2.0 License

Stars
101

Bot releases are hidden (Show)

enough_mail - v2.1.6 Latest Release

Published by robert-virkus 11 months ago

  • Fix: Fix serialization of ServerConfig - thanks to RobinJespersen!
  • Feat: allow to specify connection timeout in high level API and increase default timeout
enough_mail - v2.1.5

Published by robert-virkus 11 months ago

  • Fix: Ensure compatibility with Flutter 3.16 - thanks to Tzanou123!
enough_mail - v2.1.4

Published by robert-virkus 11 months ago

  • Fix: use refreshed OAUTH tokens when using the high level MailClient API.
  • Fix: handle edge cases in IMAP FETCH responses.
  • Feat: Add details for low level IMAP errors when using the high level MailCLient API.
  • Feat: Refresh OAUTH tokens 15 minutes in advance before they expire to reduce the risk of a token expiring during a long running operation.
  • Feat: show error details when SMTP XOAuth2 authentication fails.
  • Feat: synchronize access to low level clients when using the high level MailClient API.
enough_mail - v2.1.3

Published by robert-virkus about 1 year ago

  • Fix: Apply correct mailbox path separator - thanks nruzzu!
  • Feat: add firstWhereOrNull search method for a Tree
  • Feat: add identityFlag getter to Mailbox
enough_mail - v2.1.2

Published by robert-virkus about 1 year ago

  • Fix: RangeError when a Mailbox name contains a parentheses - thanks nruzzu
  • Fix: base64 decoding of headers with a lowercase b
  • Feat: support more name variations for ISO codecs
  • Feat: update dependencies - thanks hatch01
  • Feat: use standard serialization based on json_serializable
  • Feat: Improve high level API fetch message support
enough_mail - v2.1.1

Published by robert-virkus over 2 years ago

  • Loosened dependency restrictions a bit upon suggestion from hpoul
  • Added support for Big5, KOI8-r and KOI8-u character encodings
  • Load encodings only when required
enough_mail - v2.1.0

Published by robert-virkus over 2 years ago

  • The MailClient.deleteMessages() / undoDeleteMessages() as well as the moveMessages() and undoMoveMessages() calls
    will now update the given messages UIDs automatically, when they have been specified.
  • Simplify building a multipart/alternative message or message part by adding the option plainText and htmlText parameters
    in MessageBuilder.prepareMultipartAlternativeMessage() and addMultipartAlternative().
  • Fixed documentation for generating a mime message with an attachment (thanks lqmminh!).
enough_mail - v2.0.1

Published by robert-virkus over 2 years ago

  • Thanks to yarsort resolved various POP3 bugs.
  • Interpret mime messages with an (invalid) 2-digit year as coming from the current millennium.
enough_mail - v2.0.0

Published by robert-virkus over 2 years ago

Improvements and fixes:

  • Thanks to matthiasn the date parsing/generation on west of greenwich timezones now works properly.
  • Improve automatic re-connecting when using the high-level MailClient API.
  • Support timeouts for IMAP, SMTP and POP calls.
  • MimeMessage:
    • Get an alternative mime part easier with MimePart? getAlternativePart(MediaSubtype subtype).
    • Retrieve all recipients via the List<MailAddress> get recipients getter.
    • Support decoding binary transfer-encoding for text message parts.
    • Introduce guid / global unique IDs which are set automatically when using the high-level MailClient.
    • Correctly unwrap header values before decoding them.
    • Accept headers that have no space after the colon-separator.
  • Improve high level API support for OAUTH:
    • You can now define refresh and onConfigChanged callback methods when connecting to a mail service using MailClient.
  • Support expunging messages when deleting them in MailClient with Future<DeleteResult> deleteMessages( MessageSequence sequence, {bool expunge = false}).
    OauthAuthentication now contains a complete OauthToken.
    main
  • MessageBuilder: Access also text-attachments in the attachments getter.
  • Only use STARTTLS when the IMAP service supports it.
  • Simplify search API.

Breaking changes:

  • Package structure is simplified, so that imports of specific classes are not possible anymore. Instead either import 'package:enough_mail/enough_mail.dart'; or one of the specializes sub-packages codecs.dart,discover.dart, highlevel.dart, imap.dart, mime.dart, pop.dart or smtp.dart.
  • Authentication.passwordCleartext is renamed to Authentication.passwordClearText
  • Mailbox API has changed specifically when creating mailboxes yourself.

Other:

  • Improved code style, enforcing linting rules.
  • Improve API documentation.
  • Improve package structure
  • Many further small-scale improvements.
enough_mail - v1.3.6

Published by robert-virkus over 3 years ago

  • Fix generating messages with several recipients in MessageBuilder. Previously semicolons were used that were not accepted by all mail providers.
enough_mail - v1.3.5

Published by robert-virkus over 3 years ago

  • Add bool Function(X509Certificate)? onBadCertificate callback to handle invalid certificates #167
  • Stop polling when disconnecting high level MailClient
  • Ignore subsequent IDLE requests when already in idle mode in ImapClient
  • Improve documentation
enough_mail - v1.3.4

Published by robert-virkus over 3 years ago

  • Fix some IMAP mailbox commands when there is no mailbox selected: #160 #164 #165
enough_mail - v1.3.3

Published by robert-virkus over 3 years ago

  • Add easier method to setup a MailAccount with manual settings by calling MailAccount.fromManualSettings()
    or MailAccount.fromManualSettingsWithAuth(). This is useful when settings cannot or should not be auto-discovered, for example.
enough_mail - v1.3.2

Published by robert-virkus over 3 years ago

  • Fix login for IMAP servers that do not define capabilities in their AUTH/LOGIN response #159
enough_mail - v1.3.1

Published by robert-virkus over 3 years ago

  • Always quote user name and password in IMAP login, #158
  • Thanks to fttx2020 we have these great improvements:
    • Fix for POP3 UID LIST command
    • Fix parsing of POP3 responses
    • Handle more Chinese character encodings
    • Handle some base64 text variations better
  • SmtpExceptions now contain the full error description
enough_mail - v1.3.0

Published by robert-virkus over 3 years ago

  • Support read receipts #149
    • Check if a message contains a read receipt request with MimeMessage.isReadReceiptRequested
    • Generate a read request response with MessageBuilder.buildReadReceipt()
  • Support Windows-1256 encoding
  • Add another message as an attachment with MessageBuilder.addMessagePart() #153
  • Easily retrieve all leaf parts after loading BODYSTRUCTURE with MimeMessage.body.allLeafParts
  • Fix for responses with a line break spread around 2 chunks #140
  • Improve identification of message parts with their fetchId #141 #143 - Thanks to A.Zulli again!
  • Messages are now send with utf-8 rather than utf8 to reduce problems #144 - Thanks to gmalakov
  • Fix for responses with a literal {0} response #145
  • Better detection of plain text messages thanks to castaway
enough_mail - v1.2.2

Published by robert-virkus over 3 years ago

  • Assume 8bit encoding when no content-transfer-encoding is specified in a MIME message.
  • Exclude empty address-lists when building a message with MessageBuilder.
  • Retrieve a MIME part wit the fetchId 1 correctly.
  • ImapClient.idleStart() throws an error when no mailbox is selected.
  • MailClient.fetchMessageContents() allows you to specify which media types you want to include with the includedInlineTypes parameter, e.g. final mime = await mailClient.fetchMessageContents(envelopeMime, includedInlineTypes: [MediaToptype.image]);.
  • Convenience improvements:
    • Select a mailbox just by it's flag like MailboxFlag.sent with MailClient.selectMailboxByFlag(MailboxFlag) method.
    • Check if an email address contains a personal name with MailAddress.hasPersonalName getter.
enough_mail - v1.2.1

Published by robert-virkus over 3 years ago

  • Handle raw data in parameter values of IMAP FETCH responses.
enough_mail - v1.2.0

Published by robert-virkus over 3 years ago

  • Thanks to KevinBLT mime messages will now always have a valid date header.
  • The high level search API has been extended and access simplified
  • The high level thread API has been simplified
enough_mail - v1.1.0

Published by robert-virkus over 3 years ago

  • Thanks to A.Zulli the UNSELECT IMAP command of rfc3691 is now supported with ImapClient.unselectMailbox().
  • Support THREAD IMAP Extension with ImapClient.threadMessages() and uidThreadMessage() as well as the high level API MailClient.fetchThreads() and fetchThreadData(), the latter can set the MimeMessage.threadSequence automatically. #44
  • Access embedded message/rfc822 messages using mimePart.decodeContentMessage(). #138
  • Added SearchQueryType.toOrFrom to easily search for recipients or senders of a message.
  • All Mailbox commands now return the mailbox in question, not the currently selected mailbox.
  • Improve automatic reconnects in high level MailClient API.
  • Added high level OAuth login option and MailAccount.fromDiscoveredSettingsWithAuth() for easy setup. #137
  • Appending a message will now return the new UID of that message.
  • Continue editing a draft easily by calling MessageBuilder prepareFromDraft(MimeMessage draft).
  • You now easier load the next page of of search using MailClient.searchMessagesNextPage(MailSearchResult).
  • Improve null-safety.
  • Breaking API changes:
    • To align with Dart APIs, MessageSequence.isEmpty and isNotEmpty are now getters and not methods anymore. So instead of if (sequence.isEmpty()) please now use if (sequence.isEmpty), etc.
    • Date headers are always decoded to local time. Instead of mimeMessage.decodeDate().toLocal() now just call mimeMessage.decodeDate().
    • High level API MailSearchResult has been refactored to use PagedMessageSequence.
Package Rankings
Top 4.96% on Pub.dev
Badges
Extracted from project README
enough_mail version