PHP Classes

Email Reader: Retrieve email messages from POP3 or IMAP mailbox

Recommend this page to a friend!
     
  Info   Example   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
StarStarStar 59%Total: 620 All time: 5,084 This week: 40Up
Version License PHP version Categories
emailmd 1.11MIT/X Consortium ...5.3Email, PHP 5
Description 

Author

This package can retrieve email messages from POP3 or IMAP mailbox.

It can connect to a given POP3 or IMAP server and retrieve email messages on a given mailbox. It provides shortcut functions to connect to Gmail, Yahoo or Hotmail mailboxes.

It can filter messages by date and sort the returned message listing, and retrieve the details of each message.

Picture of Marcelo Rocha
  Performance   Level  

 

Example

<?php
   
require_once '../vendor/autoload.php';
   
//Gmail
   
$MailBox = EmailMD\MailBoxFactory::gmail(
       
'yourusername@gmail.com',
       
'yourpassword'
   
);

   
$MailBox->reverse();//Newest message first
   
$MailBox->filterSince(new DateTime());//Just message recieved today
    //Get messages
   
foreach ( $MailBox as $messageNumber => $message ) {
        echo
'Message number: ' . $messageNumber . PHP_EOL;
        echo
$message->getSubject() . PHP_EOL;
    }
?>

<?php
   
require_once '../vendor/autoload.php';
   
//Getting just some messages
    //instance
   
$MailBox = EmailMD\MailBoxFactory::gmail(
       
'yourusername@gmail.com',
       
'yourpassword'
   
);

   
//Get some messages
   
$limit = 10;
    foreach (
$MailBox as $messageNumber => $message ) {
        echo
'Message number: ' . $messageNumber . PHP_EOL;
        echo
$message->getSubject() . PHP_EOL;
       
$limit--;
        if (
$limit < 1 ) {
            break;
        }
    }
?>

<?php
   
require_once '../vendor/autoload.php';
   
//Getting messages recieved since a specific date
    //instance
   
$MailBox = EmailMD\MailBoxFactory::gmail(
       
'yourusername@gmail.com',
       
'yourpassword'
   
);

   
//Since today
   
$MailBox->filterSince(new DateTime());
    foreach (
$MailBox as $messageNumber => $message ) {
        echo
'Message number: ' . $messageNumber . PHP_EOL;
        echo
$message->getSubject() . PHP_EOL;
    }
   
//Since yesterday
   
$MailBox->filterSince(new DateTime('-1 days'));
    foreach (
$MailBox as $messageNumber => $message ) {
        echo
'Message number: ' . $messageNumber . PHP_EOL;
        echo
$message->getSubject() . PHP_EOL;
    }
?>

<?php
   
require_once '../vendor/autoload.php';
   
//Getting messages in reverse order
    //instance
   
$MailBox = EmailMD\MailBoxFactory::gmail(
       
'yourusername@gmail.com',
       
'yourpassword'
   
);
   
$MailBox->reverse();//Now we get the newest first

    //Since today
   
$MailBox->filterSince(new DateTime());
    foreach (
$MailBox as $messageNumber => $message ) {
        echo
'Message number: ' . $messageNumber . PHP_EOL;
        echo
$message->getSubject() . PHP_EOL;
    }
   
$MailBox->reverse();//Now we get the oldest first
?>


Details

EmailMD

A PHP library to read e-mails.

Install with composer

{
    "require": {
        "rochasmarcelo/emailmd": "dev-master"
    }
}

Requirements

  • PHP 5.3.*
  • Imap extension

Example

Getting a MailBox instance

<?php
    require_once 'vendor/autoload.php';
    //Gmail
    $MailBox = EmailMD\MailBoxFactory::gmail(
        'yourusername@gmail.com',
        'yourpassword'
    );

    //Hotmail / live / msn
    $MailBox = EmailMD\MailBoxFactory::live(
        'yourusername@live.com',
        'yourpassword'
    );

    //Yahoo
    $MailBox = EmailMD\MailBoxFactory::yahoo(
        'yourusername@yahoo.com',
        'yourpassword'
    );

    //Other pop3
    $MailBox = EmailMD\MailBoxFactory::make(
        '{localhost:110/pop3}INBOX',
        'yourusername@site.com',
        'yourpassword'
    );

    //Other imap
    $MailBox = EmailMD\MailBoxFactory::make(
        '{localhost:993/imap/ssl}INBOX',
        'yourusername@site.com',
        'yourpassword'
    );
?>

Basic usage

<?php
    require_once 'vendor/autoload.php';
    //Gmail
    $MailBox = EmailMD\MailBoxFactory::gmail(
        'yourusername@gmail.com',
        'yourpassword'
    );

    $MailBox->reverse();//Newest message first
    $MailBox->filterSince(new DateTime());//Just message recieved today
    //Get messages
    foreach ( $MailBox as $messageNumber => $message ) {
        echo 'Message number: ' . $messageNumber . PHP_EOL;
        echo $message->getSubject() . PHP_EOL;
    }
?>

Getting just some messages

<?php
    require_once 'vendor/autoload.php';
    //instance
    $MailBox = EmailMD\MailBoxFactory::gmail(
        'yourusername@gmail.com',
        'yourpassword'
    );

    //Get some messages
    $limit = 10;
    foreach ( $MailBox as $messageNumber => $message ) {
        echo 'Message number: ' . $messageNumber . PHP_EOL;
        echo $message->getSubject() . PHP_EOL;
        $limit--;
        if ( $limit < 1 ) {
            break;
        }
    }
?>

Getting messages recieved since a specific date

<?php
    require_once 'vendor/autoload.php';
    //instance
    $MailBox = EmailMD\MailBoxFactory::gmail(
        'yourusername@gmail.com',
        'yourpassword'
    );

    //Since today
    $MailBox->filterSince(new DateTime());
    foreach ( $MailBox as $messageNumber => $message ) {
        echo 'Message number: ' . $messageNumber . PHP_EOL;
        echo $message->getSubject() . PHP_EOL;
    }
    //Since yesterday
    $MailBox->filterSince(new DateTime('-1 days'));
    foreach ( $MailBox as $messageNumber => $message ) {
        echo 'Message number: ' . $messageNumber . PHP_EOL;
        echo $message->getSubject() . PHP_EOL;
    }
?>

Getting messages in reverse order

By default the mailbox will return the oldest messages first. But sometimes we need to get the newest messages first, to do so we need to call the "MailBox::reverse" method one time.

<?php
    require_once 'vendor/autoload.php';
    //instance
    $MailBox = EmailMD\MailBoxFactory::gmail(
        'yourusername@gmail.com',
        'yourpassword'
    );
    $MailBox->reverse();//Now we get the newest first

    //Since today
    $MailBox->filterSince(new DateTime());
    foreach ( $MailBox as $messageNumber => $message ) {
        echo 'Message number: ' . $messageNumber . PHP_EOL;
        echo $message->getSubject() . PHP_EOL;
    }
    $MailBox->reverse();//Now we get the oldest first
?>

  Files folder image Files (14)  
File Role Description
Files folder imageexamples (2 files)
Files folder imagesrc (1 directory)
Files folder imagetests (1 directory)
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file LICENSE Data Auxiliary data
Accessible without login Plain text file phpunit.xml Data Auxiliary data
Accessible without login Plain text file README.md Doc. Auxiliary data
Accessible without login Plain text file _config.yml Data Auxiliary data

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads Download Rankings  
 85%
Total:620
This week:0
All time:5,084
This week:40Up
 User Ratings  
 
 All time
Utility:66%StarStarStarStar
Consistency:66%StarStarStarStar
Documentation:66%StarStarStarStar
Examples:66%StarStarStarStar
Tests:66%StarStarStarStar
Videos:-
Overall:59%StarStarStar
Rank:1260