After 5 years and 420 usages let's switch to 1.0.0.
- [aiolib] adds python 3.10 (but python 3.10 is failing on downloading interpretor)
- [aiolib] adds getquotaroot command
Please note that this release changes the API : response lines are now all of bytes type (and not in string).
- [aiolib] compatible with python 3.9
- [aiolib] avoid having distinct types (str/bytes) in response lines
- [aiolib] adds type hints
- [aiolib] use async/await syntax (remove support for python 3.4)
- [aiolib] fixes issue #30 on idle race condition
- [aiolib] fixes the allowed version
- [aiolib] fix the fix python 3.7 don't use the 7.17
- [aiolib] fix loading issue when importing aioimaplib with python 3.7
merge from darkrain42
- [aiolib] fix interaction between idle loop and server keepalive
- [aiolib] fix cert verification on debian buster
- [test] fix imapserver literal handling on Python 3.6.5+
- [test] tests: Replace calls to asyncio.async with asyncio.ensure_future
- [aiolib] replace 'async' by is_async for python 3.7 cf #42
- [aiolib] Add ID command
- [aiolib] Add NAMESPACE command
- [fix] when there is ::1 as localhost in /etc/hosts in a docker container
- [test] tests with SSL
- [aiolib] quote password properly in IMAP dialog
- [aiolib] adds a connection lost callback
- [test] imapserver : added APPENDUID response for APPEND cmd
- [test][fix] imapserver append should add to the connected user mb
- [test] imapserver : more accurate building of message headers (using python email module)
- [aiolib] fix issue #24
- [aiolib] fix issue #27
- [aiolib] adds rfc6851 move
- [aiolib] adds IMAP4.has_capability function
- [aiolib] adds uncomplete fetch command with uncomplete line
- [aiolib] adds uncomplete fetch command BODY without literal
- [aiolib] adds rfc4315 uidplus : expunge with uids
- [test] handles uidset better in imap server
- [test] refactor testing IMAP4ClientProtocol.data_received instead of _handle_responses
- [aiolib] idle : added an idle_waiter for an event based idle loop
- [aiolib] do not filter exists line for examine command
- [aiolib] idle : wait for the end of data frame before pushing into the queue
- [test] imapserver enhancements : accepts sequence sets/returns UID when fetch by uid
- [aiolib] idle : added loop methods
- [aiolib][fix] it's up to the user to send idle DONE
- [aiolib] timeout for idle of 29 minutes + timeout of wait_server_push doesn't raise TimeoutException
- [aiolib] added timeout for wait_server_push of 29 minutes
- [aiolib] Remove imap's Continuation from server when connection is idled. Provide imapserver.wait_state to wait for idle in tests
- [test][refactor] Replace WithIMapServer inheritance by mixin combinations between ClockTestCase/TestCase and WithIMapServer
- [test] Allow to send a html email
- [fix] handling untagged responses with noop async command
- [fix] bug when incomplete literal occured before a tagged status line
- [tests] imapserver search with uid range
- [tests] better fetch request handling
- [log] Limit partials' log to 100 characters
- [build] Add tests' requires in setup.py
- [refactor] adding incomplete line before calling _handle_responses
- [fix] generalization of literal treatment
- do not filter exists line for 'select' command (breaks the API). To retrieve unread mails with select, use
- aioimaplib.extract_exists((yield from imap_client.select()) instead of 'yield from imap_client.select()[0]'
- [fix] added '$' and ';' for fetch message with litteral regexp
- [fix] issue #17 "Error fetch uid param"
- moved timeout handling at the Command level and not IMAP4 client for fetch as proposed by @cyberlis in #16
- fix : issue #15 #15 This will break the API for FETCH with emails BODY : now the first line is the server FETCH server response line. The messages are between 1 and end of Response.lines list.
- tests : [revert] add_charset to much intrusive when running a test suite
- tests : body text was not base64 encoded even if the header said so
- tests : added better encoding handling and message building in Mail.create
- tests : added message_id as Mail.create parameter for testing
- tests : extract Mail.create_binary for convenience
- fix : trailing whitespace bug causing "BAD Could not parse command" using gmail/IDLE
- fix : stop adding a space for the prefix 'UID ' -> 'UID'
- fix : issue #12 Not properly buffering newlines for incomplete lines
- fix : imapserver with status of an inexistant mailbox
- fix : remove offset problem with strip() modifying length of read data
- fix : remove 'unknown data received' logs if line is empty
- remove hard coded logging config
- doc : added logging settings
- added rfc5032 'within' function to server and tests for aiolib (it is only YOUNGER/OLDER arguments)
- pushing continuation in the queue when idled
- added a stop waiting server push function to interupt yield from queue.get
- server send still here every IDLE_STILL_HERE_PERIOD_SECONDS to client when idle
- fix when server was lauched with main, loop is already running
- fix doc
- fix imapserver main (needs a asyncio.loop.run_forever())
- fix issues with coroutines in uid command
- documentation
- remove PARTIAL, PROXYAUTH, SETANNOTATION and GETANNOTATION commands
- refactor: treating response as we read the imap server responses for a better reading
- doc
- removing tests from package
- publish on pypi
- added coverall
- fix aioimaplib bug when receiving chunked fetch data
- do not abort when receiving unsollicited data from server
- build CI environment
- license GPL v3.0
- added APPEND command
- fix usernames can have '@' for mockimapserver
- server can handle SEARCH with CHARSET opt parameter (but ignores it)
- added 11 new imap commands
- added imap command synchronizing
- refactor
- documentation
- init project with mockimapserver
- project files
- 11 imap commands