This method supports unique IDs instead of message numbers. See
{@link ezcMailImapTransportOptions} for how to enable unique IDs
referencing.
It is useful for paging through a mailbox.
Fetches $count messages starting from the $offset and returns them as a
{@link ezcMailImapSet}. If $count is is 0, it fetches all messages
starting from the $offset.
$sortCriteria is an email header like: Subject, To, From, Date, Sender, etc.
Before calling this method, a connection to the IMAP server must be
established and a user must be authenticated successfully, and a mailbox
must be selected.
Example:
$imap = new ezcMailImapTransport( 'imap.example.com' );
$imap->authenticate( 'username', 'password' );
$imap->selectMailbox( 'mailbox' ); // Inbox or another mailbox
Fetch a range of messages sorted by Date
$set = $imap->sortFromOffset( 1, 10, "Date" );
$set can be parsed with ezcMailParser
public function testUidSortFromOffsetByDateReverse() { $imap = new ezcMailImapTransport(self::$server, self::$port, array('uidReferencing' => true)); $imap->authenticate(self::$user, self::$password); $imap->selectMailbox("Inbox"); $set = $imap->sortFromOffset(self::$ids[0], 4, 'date', true); $parser = new ezcMailParser(); $mail = $parser->parseMail($set); $this->assertEquals(4, count($mail)); $this->assertEquals("pine: test 2 with 8bit norwegian chars", $mail[1]->subject); $this->assertEquals("pine: Mail with attachment", $mail[2]->subject); $this->assertEquals("pine: test 3 with norwegian chars", $mail[0]->subject); $this->assertEquals("pine: Mail with attachment", $mail[3]->subject); }
// where the key is an message number and the value is the message unique id $messages = $imap->listUniqueIdentifiers(); // Usually you will call one of these fetch functions: // Fetch all messages on the server $set = $imap->fetchAll(); // Fetch one message from the server (here: get the message no. 2) $set = $imap->fetchByMessageNr(2); // Fetch a range of messages from the server (here: get 4 messages starting from message no. 2) $set = $imap->fetchFromOffset(2, 4); // Fetch messages which have a certain flag // See the function description for a list of supported flags $set = $imap->fetchByFlag("DELETED"); // Fetch a range of messages sorted by Date // Use this to page through a mailbox // See the function description for a list of criterias and for how to sort ascending or descending $set = $imap->sortFromOffset(1, 10, "Date"); // Sort the specified messages by Date // See the function description for a list of criterias and for how to sort ascending or descending $set = $imap->sortMessages("1,2,3,4,5", "Date"); // Fetch messages which match the specified criteria. // See the section 6.4.4. of RFC 1730 or 2060 for a list of criterias // (http://www.faqs.org/rfcs/rfc1730.html) // The following example returns the messages flagged as SEEN and with // 'release' in their Subject $set = $imap->searchMailbox('SEEN SUBJECT "release"'); // Delete a message from the server (message is not physically deleted, but it's // list of flags get the "Deleted" flag. $imap->delete(1); // Use this to permanently delete the messages flagged with "Deleted" $imap->expunge(); // Use this to keep the connection alive