Changes for version 1.30 - 2011-10-25

  • 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

Modules

A single-threaded multiplexing IMAP server implementation, using Net::Server::Coro.
A command in the IMAP server
Connection to a client
Encapsulates per-connection authorization information for an IMAP user.
Encapsulates per-connection information about the layout of IMAP folders.
A command which failed catastrophically
A user's view of a mailbox
Represents a message stored in a user's mailbox

Provides

in lib/Net/IMAP/Server/Command/Append.pm
in lib/Net/IMAP/Server/Command/Authenticate.pm
in lib/Net/IMAP/Server/Command/Capability.pm
in lib/Net/IMAP/Server/Command/Check.pm
in lib/Net/IMAP/Server/Command/Close.pm
in lib/Net/IMAP/Server/Command/Copy.pm
in lib/Net/IMAP/Server/Command/Create.pm
in lib/Net/IMAP/Server/Command/Delete.pm
in lib/Net/IMAP/Server/Command/Examine.pm
in lib/Net/IMAP/Server/Command/Expunge.pm
in lib/Net/IMAP/Server/Command/Fetch.pm
in lib/Net/IMAP/Server/Command/Id.pm
in lib/Net/IMAP/Server/Command/List.pm
in lib/Net/IMAP/Server/Command/Login.pm
in lib/Net/IMAP/Server/Command/Logout.pm
in lib/Net/IMAP/Server/Command/Lsub.pm
in lib/Net/IMAP/Server/Command/Namespace.pm
in lib/Net/IMAP/Server/Command/Noop.pm
in lib/Net/IMAP/Server/Command/Rename.pm
in lib/Net/IMAP/Server/Command/Search.pm
in lib/Net/IMAP/Server/Command/Select.pm
in lib/Net/IMAP/Server/Command/Starttls.pm
in lib/Net/IMAP/Server/Command/Status.pm
in lib/Net/IMAP/Server/Command/Store.pm
in lib/Net/IMAP/Server/Command/Subscribe.pm
in lib/Net/IMAP/Server/Command/Uid.pm
in lib/Net/IMAP/Server/Command/Unsubscribe.pm