rochasmarcelo/emailmd

一个使用 imap 扩展读取电子邮件的 PHP 库。

1.0 2014-09-21 01:08 UTC

This package is auto-updated.

Last update: 2024-09-26 20:12:42 UTC


README

一个用于读取电子邮件的 PHP 库。

使用 composer 安装

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

要求

  • PHP 5.3.*
  • Imap 扩展

示例

获取 MailBox 实例

<?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'
    );
?>

基本使用

<?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';
    //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';
    //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;
    }
?>

以倒序获取邮件

默认情况下,邮箱将首先返回最旧的邮件。但有时我们需要首先获取最新的邮件,为了做到这一点,我们需要调用一次 "MailBox::reverse" 方法。

<?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
?>