---
name: "CiderWebmail::Model::IMAPClient"
section: "3pm"
platform: "linux"
package: "ciderwebmail"
version: "1.05+20240702-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/CiderWebmail::Model::IMAPClient"
---

# CiderWebmail::Model::IMAPClient(3pm)

Catalyst Model

## NAME

CiderWebmail::Model::IMAPClient - Catalyst Model

## DESCRIPTION

Interface to the IMAP Server

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

## METHODS

### new()

creates a new CiderWebmail::Model::IMAPClient

### \_die\_on\_error()

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

disconnect from IMAP Server, if connected

### separator()

Returnes the folder separator

### folder\_tree()

Return all folders as hash-tree.

### folder\_sort

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

### check\_sort($sort)

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)

### search()

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

## AUTHOR

Stefan Seifert and Mathias Reitinger \<mathias.reitinger@loop0.org\>

## LICENSE

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