1.1899_07: Sun Jun 21 07:16:36 EDT 2009
   - I decided to do get() my way, without ruining everything, by
     blessing the arrayref and overloading '""'.
   - I tought the t/35 test to prove that _process_command fails
     just as Jonathan Kamens says.
   - applied JIK's patch.

1.1899_07: Sat Jun 20 22:12:00 EDT 2009
   - I want to change the way get() works.  I don't think I
     should, but I'd like to return the actual message in scalar
     context and the lines in list context.  Returning the lines
     as an arrayref makes no sense to me.

1.1899_07: Sat Jun 20 15:26:13 EDT 2009
   - while trying to get some delete and copy tests I ended up
     working on expunge_mailbox() a little
   - found another bug in Net::IMAP::Server::Mailbox... It's
     clearly just a demo, but since I'm using it for my tests,
     it's worth fixing.
   - my delete tests do show that ranges like 3:5 really do work,
     which makes me think RT#40203 may turn out to be spurious.
     I'll let the tests prove it out before I close it though.
   - I refactored the _reselect() stuff away, it was poorly
     thought out.  There's a _clear_cache() instead.  Yeah, 40203
     appears to be bogus because the client doesn't really parse
     the sequence-set numbers.  I have confirmed for sure that
     you can $imap->delete("3:5,7,10") and it'll work just like
     you called delete 5 times.
   - Copies seem to work fine too.  I'm going to close the
   - Documented the sequence set stuff so RT#40203 doesn't come
     up again.

1.1899_06: Fri Jun 19 08:54:07 EDT 2009
   - added a status() sub for the STATUS command
   - added a status() test, with some unseen() flag tests
   - added a select() and current_mailbox() test -- failed to unescape
     the working mailbox for current_mailbox()
   - reported a status command bug (in Mailbox) to
   - moved a bunch of contrib and t7lib modules around to keep
     pause from indexing them.
   - worked on the docs for seen and unseen
   - created a method for error-checking when using msg_flags(),
     seen() and unseen() -- which I think solves ticket 33189.
     Basically, if Cyrus-imap is returning different values for
     FETCH (FLAGS) than for STATUS, what can I really do to fix
     it?  However, the log provided by Mr Spiegl seems to suggest
     he was counting errors as unseen messages... so this may
     just fix it.

1.1899_05: Wed Jun 17 06:25:39 EDT 2009
   - documented see, unsee, add_flags, and sub_flags
   - used the IMAP RFC to show that gmail is wrong,
     Net::IMAP::Server is right.  google apps for domains
     apparently selects an unseen message willy nilly (or which
     ever is last) for the OK [UNSEEN #] message.  It should be
     the *first* unseen message.  Their IMAP is notoriously
     un-IMAP though.  I shouldn't be so surprised.
   - added undelete to go with the other flaggy functions
   - added more flag tests

1.1899_05: Tue Jun 16 06:42:16 EDT 2009
   - I started working on ticket 45953,
   - created sub_flags() and add_flags()
   - taught delete() to use add_flags() -- adds \Deleted
   - providing see() and unsee() for ticket 45953
   - I started building tests for the flag manipulation stuff and
     put reselect stuff ... noticed a possible bug in

1.1899_05: Sun Jun 14 07:14:54 EDT 2009
   - fixed t/test_server.pm (use IO::Socket::INET, not Net::TCP)

1.1899_04: Sat Jun 13 18:33:46 EDT 2009
   - added deleted() from JIK <jik@kamens.brookline.ma.us>'s

1.1899_03: Sat Jun 13 17:05:55 EDT 2009
   - added a connection class so we might reject connections
     after the 4th, or whatever, and possibly solve ticket 30229
   - banged my head on the IO::Socket::SSL wall for a while
   - buu (#perl freenode) set me straight on something enabling
     me to close 30229.

1.1899_02: Sat Jun 13 07:39:29 EDT 2009
   - moved some tests around and fixed the manifests
   - added support, docs and test for EXAMINE

1.1899_01: Fri Jun 12 22:06:36 EDT 2009
   - man Coro is disaggreable in the shutdown epoch, it took a
     fork, a setsid and another fork to disssociate the test from
     the Coro ... um... messing with exit().
   - decided as I clear tickets from RT, I'll write tests.  As I
     write tests, I'll release dev releases, the *goal* will be
     1.1900 -- all RT cleared.

1.1900: Thu Jun 11 07:17:13 EDT 2009
   - fixed a bug I created in select
   - moved the tests around a little, getting ready for a whole

1.1900: Wed Jun 10 22:01:53 EDT 2009
   - It took me forever to figure out why the append command
     wouldn't work.  Bug submitted to Net::IMAP::Server
   - added my login function to contrib
   - I think I fixed the oldest bug on RT

1.1810: Sun Jun  7 10:52:30 EDT 2009
   - made $imap->select return "0E0" when 0 messages are found
     after an otherwise successful select.

1.1810: Sat Jun  6 22:13:34 EDT 2009
   - Started working on the tests.    Net::IMAP::Simple doesn't
     seem to be able to handle the results of a select command as
     returned by Net::IMAP::Server.  This may indicate other
     problems with protocol compliance.  I can't say definitley
     for sure that it's ::Simple, but that's the most likely

   - Made the module pull in IO::Socket::SSL without needing to
     involve another module that probably shouldn't be a whole
     separate distribution anyway.  Considering deprecating the
     Net::IMAP::Simple::SSL for that reason, and because that
     whole distribution is only 2 useful lines anyway.

1.1800: Thu Jun  4 21:44:59 EDT 2009
   - jettero started pulling in his changes.

1.17  2006-10-11
      - Beta/Developer release -> production

1.16_1 2006-10-02
      - Beta Release
      - Added debugging
      - Upgraded imap.pl example script
      - Updated documentation
      - Added a few patches here and there

1.16  2006-06-13
    - Multiple bugs identified by nate@cs.wisc.edu. Patch
      provided by Nate.  Nate also provided new release tests -
      thanks man.

1.15  2005-11-21
    - Added mailboxes_subscribed() function introduced by John
      Cappiello.  This function provides a method for retreiving
      a list of mailboxes which the user has subscribed to. This
      differs from the mailboxes() function in that with the
      mailboxes() function all mailboxes are returned, regardless
      ass to whether or not the user has subscribed to them.

1.14  2005-10-01
    - Fixed error in sample code within the POD documentation
      identified by Matthew S. Hallacy

1.13  2005-09-28
    - Versioning schema changed to use CVS versioning rather than
      hard coded versioning. This is to address issues some
      people are having with bug tracking and package management

0.105 2005-09-28
    - Fixed syntax problem in the bindaddr option. Thanks
      Dagobert Michelsen for pointing this out.

0.104 2005-08-06
    - Fixed major bug discovered in get() and getfh() which
      caused message lines to be dropped if they started with an

0.103 2005-07-10
    - Fixed error in select() identified by Guido Kerkewitz and
      Jonathan B. Glatt
    - Added folder_subscribe() and folder_unsubscribe() functions
      provided by Guido Kerkewitz.

0.102 2005-06-25
    - Fixed protocol error identified within the
      expunge_mailbox() function. (Thanks alot to William Faulk
      for pointing this out)
    - Fixed bugs in the sample imap.pl script provided.
    - Added flags() and recent() routines
    - Added current_box() function
    - Added use_select_cache and select_cache_ttl options. These
      options will allow you to enable internal caching for
      select() operations.

0.101 2005-01-06
    - Fixed bug which resulted in inconsistant results from

0.100 2005-14-05
    - Fixed dates in Changes file
    - Fixed IMAP protocol error identified by John A. Murphy
    - Changed behavior of login() to only return true or false.
      This change means that to get the current number of
      messages in a users INBOX folder you will need to preform a
      simple $imap->select("INBOX") after successfully logging
    - Added messages() function
    - Added the frame work within select() to provide more
      detailed information about the current IMAP framework

0.99  2005-28-04
    - Added multi-line header patch for bug discovered in top(),
      thanks Sergey Mudrik for pointing this out.

0.98  2005-27-04
    - Minor document changes
    - Fixed implimentation bug with the new option set

0.97  2005-26-04
    - Added patch submitted by LTHEGLER to address the multiple
      line output problem.

0.96  2005-26-04
    - Took over module development (Colin Faber)
    - Fixed synopsis to provide a functional example (Colin
    - Added error handling (Colin Faber)
    - Added IPv6 support (Colin Faber)
    - Added port, timeout, use_v6, retry, retry_delay and
      bindaddr options to the object creation method.

0.95  2004-06-09
    - Accept port configuration (Matt Bradford).
    - Documentation overhaul (Casey West).
    - Huge internal code overhaul (Casey West).
    - Implemented expunge_mailbox() (Florin Andrei).

0.94  Thu May 20 15:24:21 EDT 2004
    - Taken by Casey West.
    - Quoted the password argument to login() when sending to
      IMAP LOGIN command.
    - Added arguments for searching in paths and for mailboxes in
      the mailboxes() command.
    - Distribution clean up.

0.93  Thu Dec 16 16:15:00 1999
    - LIST ... {\d}\r\nmailbox parsing in mailboxes()
        - better escaping of \" e \\ (Netscape server doesn't put
          the \\ in the mailbox name. Why?)

0.92  Tue Dec 13 15:07:00 1999
    - seen method
        - \r\n as EOL. Thanks to Edward Chao!
        - \" escaping. Thanks to Edward Chao!

0.91  Tue Nov  9 11:41:00 1999
    - getfh method
        - fixed bugs in the documentation(!!!)

0.90  Wed Nov  3 15:29:13 1999
    - original version; created by h2xs 1.18