public function testPop3MessageSourceFetchAll() { $transport = new ezcMailPop3Transport("mta1.ez.no"); $transport->authenticate("*****@*****.**", "ezcomponents"); $parser = new ezcMailParser(); $set = new ezcMailStorageSet($transport->fetchAll(), $this->tempDir); $mail = $parser->parseMail($set); $files = $set->getSourceFiles(); $source = file_get_contents($files[0]); $this->assertEquals(self::$sizes[0], strlen($source)); }
<?php require_once 'tutorial_autoload.php'; // Create a new POP3 transport with a plain connection (default port is 110, // you can specify a different one using the second parameter of the constructor). // A timeout option is specified to be 10 seconds (default is 5). // Another option to be specified is the authenticationMethod as APOP (default is plain text) $options = new ezcMailPop3TransportOptions(); $options->timeout = 10; $options->authenticationMethod = ezcMailPop3Transport::AUTH_APOP; $pop3 = new ezcMailPop3Transport("pop3.example.com", null, $options); // Authenticate to the POP3 server $pop3->authenticate("user", "password");
public function testServerSSL() { if (!ezcBaseFeatures::hasExtensionSupport('openssl')) { $this->markTestSkipped(); } $pop3 = new ezcMailPop3Transport(self::$serverSSL, null, array('ssl' => true)); $pop3->authenticate(self::$userSSL, self::$passwordSSL); $set = $pop3->fetchAll(); $parser = new ezcMailParser(); $mail = $parser->parseMail($set); $mail = $mail[0]; $this->assertEquals(240, $mail->size); }
<?php require_once "extension/jaj_newsletter/lib/bounce_handler/bounce_driver.class.php"; $server = "zmail-01.hikt.no"; $username = "******"; $password = "******"; $bouncehandler = new Bouncehandler(); $pop3 = new ezcMailPop3Transport($server); $pop3->authenticate($username, $password); $pop3->status($num, $size); $cli->output('Bounce messages to check: ' . $num); $messages = $pop3->listMessages(); foreach ($messages as $index => $size) { $set = $pop3->fetchByMessageNr($index); do { $raw_message = ""; $line = ""; while (($line = $set->getNextLine()) !== null) { $raw_message .= $line; } $result = $bouncehandler->get_the_facts($raw_message); $result = $result[0]; $status = $result['status']; $action = $result['action']; $recipient = trim($result['recipient']); if (!in_array($action, array("delayed", "failed", "autoreply"))) { $cli->output("Message index: {$index}, unknown action: {$action}, skipping..."); continue; } if ($action == 'delayed' || $action == 'autoreply') { $cli->output("Deleting message: {$index}, action: {$action}");
<?php require_once 'tutorial_autoload.php'; // Create a new POP3 transport object by specifying the server name $pop3 = new ezcMailPop3Transport("pop3.example.com"); // Authenticate to the POP3 server $pop3->authenticate("user", "password"); // Get the number of messages on the server and their combined size // in the variables $num and $size $pop3->status($num, $size); // Get the list of message numbers on the server and their sizes // the returned array is something like: array( 1 => 1500, 2 => 45200 ) // where the key is a message number and the value is the message size $messages = $pop3->listMessages(); // Get the list of message unique ids on the server and their sizes // the returned array is something like: array( 1 => '00000f543d324', 2 => '000010543d324' ) // where the key is an message number and the value is the message unique id $messages = $pop3->listUniqueIdentifiers(); // Usually you will call one of these 3 fetch functions: // Fetch all messages on the server $set = $pop3->fetchAll(); // Fetch one message from the server (here: get the message no. 2) $set = $pop3->fetchByMessageNr(2); // Fetch a range of messages from the server (here: get 4 messages starting from message no. 2) $set = $pop3->fetchFromOffset(2, 4); // Delete a message from the server $pop3->delete(1); // Use this to keep the connection alive $pop3->noop(); // Create a new mail parser object $parser = new ezcMailParser();
/** * connect with mailaccount * * @return object / boolean */ public function connect() { // current mailbox id $mailboxId = $this->attribute('id'); // current mailbox type, for pop3-/imap switch $mailboxType = $this->attribute('type'); // login data $server = $this->attribute('server'); $userName = $this->attribute('user_name'); $password = $this->attribute('password'); $port = $this->attribute('port'); $ssl = (bool) $this->attribute('is_ssl'); $deleteMailsFromServer = (bool) $this->attribute('delete_mails_from_server'); if ($port > 0) { $serverPort = $port; } else { // let choose ezc the right port if not set $serverPort = null; } $ezcTransportObject = null; $settingArray = array('mailbox_id' => $mailboxId, 'type' => $mailboxType, 'server' => $server, 'user_name' => $userName, 'password' => $password, 'port' => $port, 'is_ssl' => $ssl, 'delete_mails_from_server' => $deleteMailsFromServer); try { // create transport object switch ($mailboxType) { case 'imap': $options = new ezcMailImapTransportOptions(); $options->ssl = $ssl; $options->timeout = 3; $ezcTransportObject = new ezcMailImapTransport($server, $serverPort, $options); break; case 'pop3': $options = new ezcMailPop3TransportOptions(); $options->ssl = $ssl; $options->timeout = 3; // $options->authenticationMethod = ezcMailPop3Transport::AUTH_APOP; $ezcTransportObject = new ezcMailPop3Transport($server, $serverPort, $options); break; default: CjwNewsletterLog::writeError('CjwNewsletterMailbox::connect', 'mailbox', 'connect-failed', array('error-code' => $e->getMessage())); return $e->getMessage(); } } catch (Exception $e) { CjwNewsletterLog::writeError('authenticate ezcMailTransport CjwNewsletterMailbox::connect', 'mailbox', 'connect-failed', array('error-code' => $e->getMessage())); return $e->getMessage(); } try { // authenticate twise is not allowed $ezcTransportObject->authenticate($userName, $password); } catch (Exception $e) { CjwNewsletterLog::writeError('CjwNewsletterMailbox::connect', 'mailbox', 'authenticate-failed', array_merge(array('error-code' => $e->getMessage()), $settingArray)); return $e->getMessage(); } try { switch ($mailboxType) { case 'imap': $ezcTransportObject->selectMailbox('Inbox'); break; } $this->TransportObject = $ezcTransportObject; // set connect time $this->setAttribute('last_server_connect', time()); $this->store(); CjwNewsletterLog::writeDebug('CjwNewsletterMailbox::connect', 'mailbox', 'connect-ok', $settingArray); return $ezcTransportObject; } catch (Exception $e) { CjwNewsletterLog::writeError('CjwNewsletterMailbox::connect', 'mailbox', 'selectBox-failed', array('error-code' => $e->getMessage())); return $e->getMessage(); } }