Revision history for Net-IMAP-Server 1.39 2016-05-01T00:42:17Z - Use 127.0.0.1 instead of localhost in tests - Fix precedence error with "return" in Net::IMAP::Server::Mailbox->selected 1.38 2014-01-26T20:16:17Z - Pass tests with IO::Socket::SSL 1.950 and above, which verify server SSL certificates by default. 1.37 2014-01-26T19:14:17Z - Fix parsing par parenthesized expressions with recent Regexp::Common 1.36 2012-01-17T08:09:17Z - Fix string literals (such as for APPEND), which have counted characters incorrectly since 1.32 due to newline trimming. 1.35 2012-11-12T03:22:17Z - Switch to AnyEvent, from EV 1.34 2012-07-28T15:49:17Z - Don't rely on $" being set to the default " " during UID SEARCH 1.33 2012-04-07T19:37:17Z - Test fixes; use recv() with MSG_PEEK | MSG_DONTWAIT to determine if a TCP connection is in state CLOSE_WAIT 1.32 2012-04-06T00:45:17Z - Trim newlines passed to all commands, including continuation lines - Remove erroneous extra \n on server SASL responses - Bump MIME::Base64 dependency, and adjust bad mime encoding techniques to compensate - Better mapping of SASL mechanism names to method names 1.31 2012-04-01T01:18:17Z - Add test dependency on IO::Socket::SSL - Minor ASCII art updates 1.30 2011-10-25T11:30:17Z - Beginnings of a testsuite based on the RFC spec - Prepend, rather then append, un-asked-for message attributes, for picky clients - Properly escape mailbox names with quotes in LIST/LSUB - Trap and report base64 errors during AUTH - Returning -1 from a SASL auth now returns BAD, while returning false returns NO - Send an [ALERT] if the password was sent unprotected in plaintext - Remove an incorrect call to ->socket which caused errors during DESTROY - Selecting a bogus mailbox now leaves the state unselected - Return BAD on CREATE or RENAME with 8-bit mailbox names or invalid UTF-7 encoding - Forbid removal of INBOX 1.29 2010-08-02T10:42:17Z - Fix "UID SEARCH 1,2" - Allow "UID SEARCH *" - A better fix for [rt.cpan.org #58160], which is caused by a bug in DateTime::Format::Strptime ([rt.cpan.org #58459]) - Fix a minor bug in UID wherein unknown subcommands would attempt to call a nonexistant method 1.28 2010-06-08T14:14:17Z - Prevent warnings when CLOSE is called - strftime("%e") can generate leading space, which strptime("%e") fails to parse; parse with strptime("%n%e") [rt.cpan.org #58160] - Ensure that EXAMINE collowed by SELECT in the same mailbox leaves it write-able [rt.cpan.org #58162] 1.27 2010-05-03T21:27:17Z - Make ->handle_command return the instance of the ::Command subclass that ran, for more useful subclassing 1.26 2009-12-15T22:31:17Z - Fix ->read_only to only care about ->selected_read_only if the mailbox is currently selected. - Add a ->select callback (defautls to doing nothing) on mailboxes which is called when it becomes selected. - The content returned by FETCH BODY[1] should be the raw content, without decoding transport encoding. 1.25 2009-11-07T23:58:17Z - BACKWARDS-INCOMPATIBLE CHANGE: Net::IMAP::Server::Command's ->log method takes a loglevel argument by default, and simply defers to Net::Server's logging infratructure. - Handle more of Net::Server's arguments to ->new, including logging - Pass through arguments to Net::Server any arguments to ->run - Support mailboxes with flat hierarchies (undef hierarchy separator) - Fix a bug where UID COPY set two OK responses 1.24 2009-10-16T11:01:17Z - Fix overzealous caching during mailbox renaming - Bump Net::Server::Coro dep, to be able to specify SSL certificate paths 1.23 2009-07-17T17:34:17Z - Fix RT#47955; session flags were never getting stored, causing no messages to ever be marked \Recent 1.22 2009-07-13T12:13:17Z - Warning avoidance for "substr outside of string" warnings - Net::IMAP::Server::Command::UID still contained a reference to untagged_fetch 1.21 2009-07-09T14:52:17Z - Bump copyright, link to mailing list - Remove mostly undocumented an no-servicable-parts session_flags - untagged_* renamed to _unsent_* (and thus private) - A bit more documentation of accessors - Better error message on unknown SEARCH token - Add caching of "start of the day in utc" for searching - Add extraction of "start of the Date: header in utc" for searching - Add BEFORE, ON, SINCE, SENTBEFORE, SENTON, SENTSINC support to SEARCH - Document Net::IMAP::Server::Message->expunged 1.20 2009-06-19T16:04:17Z - The logic for STATUS UNSEEN was backwards, counting the number of seen messages. Reported by Paul Miller 1.19 2009-06-19T13:26:17Z - Fix POD coverage on Net::IMAP::Server::Error 1.18 2009-06-17T14:50:16Z - Handle compile errors in required commands better - Add missing DateTime::Format::Strptime dependency 1.17 2009-05-03T14:54:17Z - Document "NO" and "BAD" die() arguments - Fix mailbox read-only attribute 1.16 2009-04-07T23:45:17Z - Make UID fetches no longer O(range client requested), which is fragile when there are few messages but they are high in UID. 1.15 2009-04-06T12:49:17Z - Calls to ->header_raw were being made on Email::MIME objects, instead of Email::MIME::Header objects. Reported by 1.14 2009-04-06T03:55:17Z - Bump Email::MIME dep, for ->header_raw method - Fix typo in RFC reference. Reported by - Documentation typo fixes 1.13 2009-03-20T14:11:17Z - More UNSEEN fixes; the UNSEEN reported by STATUS and the UNSEEN reported by SELECT are different beasts, and have been split into different methods. 1.12 2009-03-10T13:46:17Z - Ensure that mailboxes passed to CREATE aren't trying to encode things they shouldn't be, by round-tripping and comparing. - Match query in LIST and LSUB against encoded path, not raw utf8 path - Support for adding new commands via 'add_command' in Net::IMAP::Server 1.11 2009-03-06T14:20:17Z - Move IMAP-UTF-7 handling into model's ->split, so it runs for _all_ client-given input. Then adjust ->handle_command to be able to send specific messages to the client on some exceptions. Reported by Jan Dvorak . - Add a case for the suspected edge case where a timeout or printing error is discovered while handling a command - Upper-case command name in "command not recognized" to not leak implementation as much 1.10 2009-03-05T14:27:17Z - Fix a major bug where UNSEEN reported the total number of unseen messages in the mailbox, rather than the sequence of the first unseen message. Reported by Jan Dvorak - Always return un-decoded headers to the client. Reported by Jan Dvorak - Fixes for people who have set $" to something odd 1.08 2009-02-24T16:27:17Z - UTF-7 support for mailbox naming - Add and document purge => 1 option to full_path 1.07 2008-11-23T01:03:24Z - Fixed missing UNIVERSAL::require dep 1.06 2008-11-17T17:06:52Z - Added NAMESPACE support 1.05 2008-10-20T16:40:19Z - Fixed spelling of 'separator' -- THIS BREAKS BACKWARDS COMPATIBILITY if you had overridden the 'seperator' method. - Added some missing pod on Net::IMAP::Server::DefaultModel 1.01 2008-08-16T21:06:31Z - Now with updated changelog and signatures - no functionality changes 1.00 2008-08-16T21:05:25Z - Remove Email::Folder dep, and default load_data behavior 0.95 2008-08-06T18:46:09Z - We can intuit the is_inbox mailbox property - Include a simple example server 0.9 2008-07-07T17:35:04Z - Add update_tree hook so servers can dynamically create sub-mailboxes 0.8 2008-06-16T18:34:56Z - Special-casing for Zimbra clients - client_id is a connection property, not an auth property - Bump the Net::Server::Coro dep 0.7 2008-05-19T13:30:17Z - Per-session message flags actually stored on the session - STATUS is now on the mailbox 0.6 2008-05-16T13:29:12Z - Add missing Net::SSLeay dep 0.5 2008-04-25T12:18:17Z - Add 'use Coro's for the places I added 'cede's - Module::Install version bump 0.4 2008-04-23T15:24:22Z - Weaken the timeout callback, so we don't leak connection objects - Don't double-store refs to connections - Actually clean out old keys in the connection hash - Try to print from the right coro, so EV doesn't complain about recursive entry, and then wedge the next time it happens. - Drop some more 'cede's in for commands which do many things 0.3 2008-03-11T12:33:14Z - Connections weren't being fully closed on timeout 0.2 2008-03-10T16:47:52Z - Initial release to CPAN