searchMailbox() public method

This method supports unique IDs instead of message numbers. See {@link ezcMailImapTransportOptions} for how to enable unique IDs referencing. See {@link http://www.faqs.org/rfcs/rfc1730.html} - 6.4.4. (or {@link http://www.faqs.org/rfcs/rfc1730.html} - 6.4.4.) for criterias which can be used for searching. The criterias can be combined in the same search string (separate the criterias with spaces). If $criteria is null or empty then it will default to 'ALL' (returns all messages in the mailbox). 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. Examples: $imap = new ezcMailImapTransport( 'imap.example.com' ); $imap->authenticate( 'username', 'password' ); $imap->selectMailbox( 'mailbox' ); // Inbox or another mailbox return an ezcMailImapSet containing all messages flagged as 'SEEN' $set = $imap->searchMailbox( 'SEEN' ); return an ezcMailImapSet containing messages with 'release' in their Subject $set = $imap->searchMailbox( 'SUBJECT "release"' ); criterias can be combined: return an ezcMailImapSet containing messages flagged as 'SEEN' and with 'release' in their Subject $set = $imap->searchMailbox( 'SEEN SUBJECT "release"' ); $set can be parsed with ezcMailParser
public searchMailbox ( string $criteria = null ) : ezcMailImapSet
$criteria string
return ezcMailImapSet
コード例 #1
0
ファイル: ClientTest.php プロジェクト: tvpsoft/laravel-kinvey
 /**
  * Get the password reset URL.
  *
  * @return string
  */
 public static function getPasswordResetURL()
 {
     $options = new \ezcMailImapTransportOptions();
     $options->ssl = true;
     $imap = new \ezcMailImapTransport('imap.gmail.com', null, $options);
     $imap->authenticate('*****@*****.**', Config::get('kinvey::testMail'));
     $imap->selectMailbox('Inbox');
     $set = $imap->searchMailbox('FROM "*****@*****.**"');
     $parser = new \ezcMailParser();
     $mail = $parser->parseMail($set);
     preg_match("#https.*#", $mail[0]->generateBody(), $matches);
     $url = html_entity_decode($matches[0]);
     $url = mb_substr($url, 0, -1);
     foreach ($set->getMessageNumbers() as $msgNum) {
         $imap->delete($msgNum);
     }
     $imap->expunge();
     return $url;
 }
コード例 #2
0
 public function testUidSearchMailboxFail()
 {
     $imap = new ezcMailImapTransport(self::$server, self::$port, array('uidReferencing' => true));
     $imap->authenticate(self::$user, self::$password);
     try {
         $set = $imap->searchMailbox('SUBJECT "pine"');
         $this->fail('Expected exception was not thrown.');
     } catch (ezcMailTransportException $e) {
         $this->assertEquals("An error occured while sending or receiving mail. Can't call searchMailbox() on the IMAP transport when a mailbox is not selected.", $e->getMessage());
     }
 }
コード例 #3
0
ファイル: tutorial_imap.php プロジェクト: notion/zeta-mail
// 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
$imap->noop();
// Create a new mail parser object
$parser = new ezcMailParser();
// Parse the set of messages retrieved from the server earlier
$mail = $parser->parseMail($set);