Scroll to navigation

CiderWebmail::Model::IMAPClient(3pm) User Contributed Perl Documentation CiderWebmail::Model::IMAPClient(3pm)


CiderWebmail::Model::IMAPClient - Catalyst Model


Interface to the IMAP Server

You should *really* read rfc3501 if you want to use this.



creates a new CiderWebmail::Model::IMAPClient


die if the last IMAP command sent to the server caused an error this sould be called after every command sent to the imap server.


disconnect from IMAP Server, if connected


Returnes the folder separator


Return all folders as hash-tree.


custom sort for folders always put INBOX on top

select({ mailbox => $mailbox })

selects a folder

message_count({ mailbox => $mailbox })

returnes the number of messages in a mailbox

unseen_count({ mailbox => $mailbox })

returnes the number of unseen messages in a mailbox


Checks if the given sort criteria is valid.

get_folder_uids({ mailbox => $mailbox, sort => $sort, range => $range })

Returns a MessageSet object representing all UIDs in a mailbox The range option accepts a range of UIDs (for example 1:100 or 1:*), if you specify a range containing '*' the last (highest UID) message will always be returned.

get_headers_hash({ uids => [qw/ 1 .. 10 /], sort => [qw/ date /], headers => [qw/ date subject /], mailbox => 'INBOX' })

returnes a array of hashes for messages in a mailbox

  • uids (arrayref): a list of uids (as described in RFC2060) to fetch
  • sort (arrayref): sort criteria (as described in RFC2060). for example: [ qw/ date / ] will sort by date, [ qw/ reverse date / ] will sort by reverse date
  • headers (arrayref, required): a list of mail-headers to fetch.
  • mailbox (required)


searches a mailbox returns a arrayref containing a list of UIDs

all_headers({ mailbox => $mailbox, uid => $uid })

fetch all headers for a message and updates the local headercache

get_headers({ mailbox => $mailbox })

fetch headers for a single message from the server or (if available) the local headercache

mark_read({ mailbox => $mailbox, uid => $uid })

mark a messages as read

mark_answered({ mailbox => $mailbox, uid => $uid })

mark a message as answered

toggle_important({ mailbox => $mailbox, uid => $uid })

toggle the important/flagged IMAP flag. returnes 'flagged' if the flag is now set, otherwise returnes undef.

get_flags({ mailbox => $mailbox, uid => $uid })

fetches the flags of a message, returnes a hashref with the lowercased flag names as keys

bodypart_as_string({ mailbox => $mailbox, uid => $uid, parts => [ $part ] })

fetches body part(s) of a message - part IDs according to the bodystructure of the message

get_bodystructure({ mailbox => $mailbox, uid => $uid })

fetches bodystructure of a message. returns a Mail::IMAPClient::BodyStructure object - this might change when we parse this into something more usefull

message_as_string({ mailbox => $mailbox, uid => $uid })

return a full message body as string

delete_messages({ mailbox => $mailbox, uid => $uid })

delete message(s) form the server and expunge the mailbox

append_message({ mailbox => $mailbox, message_text => $message_text })

low level method to append an RFC822-formatted message to a mailbox

move_message({ mailbox => $mailbox, target_mailbox => $target_mailbox, uid => $uid })

Move a message to another mailbox

create_mailbox({ mailbox => $mailbox, name => $name })

Create a subfolder

delete_mailbox({ mailbox => $mailbox })

Delete a complete folder

get_quotas({ mailbox => $mailbox })

Get a list of quotaroots that apply to the specified mailbox


Stefan Seifert and Mathias Reitinger <>


This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.

2020-02-24 perl v5.30.0