PHPackages                             clivern/imap - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. clivern/imap

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

clivern/imap
============

Access Mailbox Using PHP IMAP

1.0.6(6y ago)3146.8k↓51.7%14[5 issues](https://github.com/Clivern/Imap/issues)[2 PRs](https://github.com/Clivern/Imap/pulls)MITPHPPHP &gt;=5.6.4CI failing

Since Aug 15Pushed 1w ago3 watchersCompare

[ Source](https://github.com/Clivern/Imap)[ Packagist](https://packagist.org/packages/clivern/imap)[ Docs](https://github.com/clivern/imap)[ RSS](/packages/clivern-imap/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (7)Dependencies (3)Versions (12)Used By (0)

Imap
====

[](#imap)

📬 Access Mailbox Using PHP IMAP.

*Current Version: 1.0.6*

[![Build Status](https://camo.githubusercontent.com/c0c084c4546fe189495b7b70c1e2a9e6f30d9bf6482eb06de82f9b02332cc07c/68747470733a2f2f7472617669732d63692e6f72672f436c697665726e2f496d61702e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/Clivern/Imap)

Installation
------------

[](#installation)

To install the package via `composer`, use the following:

```
composer require clivern/imap
```

This command requires you to have Composer installed globally.

Usage
-----

[](#usage)

After adding the package as a dependency, Please read the following steps:

### Connect and Authenticate

[](#connect-and-authenticate)

```
include_once dirname(__FILE__) . '/vendor/autoload.php';

use Clivern\Imap\Core\Connection;

$connection = new Connection(
    "imap.gmail.com",
    "993",
    "test@clivern.com",
    "my_password",
    "/ssl",
    "INBOX"
);
$connection->connect();
```

After end of everything, you should close connection

```
$connection->disconnect();
```

#### Connection Options

[](#connection-options)

```
$folder = "INBOX";

// Reconnect & Update Mailbox Folder
$connection->reconnect($folder);
// Reopen Connection
$connection->survive($folder);
// Get Connection Stream
$connection->getStream();
// Get Server String
$connection->getServer();
// Check Connection
$connection->checkConnection();
// Get Quota Array
$connection->getQuota($folder);
// Get Status Array
$connection->getStatus($folder);
// Check MailBox Data
$connection->check();
// Ping Connection
$connection->ping();
// Get Errors
$connection->getErrors();
// Get Alerts
$connection->getAlerts();
// Get Last Error
$connection->getLastError();
// Disconnect
$connection->disconnect();
```

### Mailboxes

[](#mailboxes)

Retrieve mailboxes (also known as mail folders) from the mail server and iterate over them:

```
use Clivern\Imap\MailBox;

$mailbox = new MailBox($connection);

$messages = $mailbox->getMessages();

foreach ($messages as $message) {
    echo "Subject: " . $message->header()->get('subject');
    echo "";
    echo $message->body()->getMessage();
}
```

#### Searching

[](#searching)

To add custom search

```
use Clivern\Imap\Core\Search;
use Clivern\Imap\Core\Search\Condition\All;
use Clivern\Imap\Core\Search\Condition\Answered;
use Clivern\Imap\Core\Search\Condition\BCC;
use Clivern\Imap\Core\Search\Condition\Before;
use Clivern\Imap\Core\Search\Condition\Body;
use Clivern\Imap\Core\Search\Condition\CC;
use Clivern\Imap\Core\Search\Condition\Deleted;
use Clivern\Imap\Core\Search\Condition\Flagged;
use Clivern\Imap\Core\Search\Condition\From;
use Clivern\Imap\Core\Search\Condition\Keyword;
use Clivern\Imap\Core\Search\Condition\NewFlag;
use Clivern\Imap\Core\Search\Condition\Old;
use Clivern\Imap\Core\Search\Condition\On;
use Clivern\Imap\Core\Search\Condition\Recent;
use Clivern\Imap\Core\Search\Condition\Seen;
use Clivern\Imap\Core\Search\Condition\Since;
use Clivern\Imap\Core\Search\Condition\Subject;
use Clivern\Imap\Core\Search\Condition\Text;
use Clivern\Imap\Core\Search\Condition\To;
use Clivern\Imap\Core\Search\Condition\UnAnswered;
use Clivern\Imap\Core\Search\Condition\UnDeleted;
use Clivern\Imap\Core\Search\Condition\UnFlagged;
use Clivern\Imap\Core\Search\Condition\UnKeyword;
use Clivern\Imap\Core\Search\Condition\UnSeen;

$search = new Search();
$search->addCondition(new All());
// $search->addCondition(new Answered());
// $search->addCondition(new BCC("filter@gmail.com"));
// $search->addCondition(new Before(date("j F Y")));
// $search->addCondition(new Body("search text"));
// $search->addCondition(new CC("filter@gmail.com"));
// $search->addCondition(new Deleted());
// $search->addCondition(new Flagged());
// $search->addCondition(new From("filter@gmail.com"));
// $search->addCondition(new Keyword("test"));
// $search->addCondition(new NewFlag());
// $search->addCondition(new Old());
// $search->addCondition(new On(date("j F Y")));
// $search->addCondition(new Recent());
// $search->addCondition(new Seen());
// $search->addCondition(new Since(date("j F Y")));
// $search->addCondition(new Subject("search text"));
// $search->addCondition(new Text("search text"));
// $search->addCondition(new To("filter@gmail.com"));
// $search->addCondition(new UnAnswered());
// $search->addCondition(new UnDeleted());
// $search->addCondition(new UnFlagged());
// $search->addCondition(new UnKeyword("test"));
// $search->addCondition(new UnSeen());

// For more info, please check http://php.net/manual/en/function.imap-search.php
```

Then configure mailbox:

```
use Clivern\Imap\MailBox;

$mailbox = new MailBox($connection);

$messages = $mailbox->getMessages($search);

foreach ($messages as $message) {
    echo "Subject: " . $message->header()->get('subject');
    echo "";
    echo $message->body()->getMessage();
}
```

#### Mailbox Option

[](#mailbox-option)

Some good methods in mailbox

```
use Clivern\Imap\MailBox;

$mailbox = new MailBox($connection);
// Get Folders
$mailbox->getFolders();
// Update Folder
$mailbox->setFolder("[Gmail]/All Mail");
// Count Messages in Current Folder
$mailbox->count();

$messages = $mailbox->getMessages();

foreach ($messages as $message) {
    echo "Subject: " . $message->header()->get('subject');
    echo "";
    echo $message->body()->getMessage();
}
```

#### Messages

[](#messages)

To get message header data:

```
$message->header()->get('subject');
$message->header()->get('from');
$message->header()->get('to');
$message->header()->get('date');
$message->header()->get('message_id');
$message->header()->get('in_reply_to');
$message->header()->get('references');
$message->header()->get('size');
$message->header()->get('uid');
$message->header()->get('msgno');
$message->header()->get('recent');
$message->header()->get('flagged');
$message->header()->get('answered');
$message->header()->get('deleted');
$message->header()->get('seen');
$message->header()->get('draft');
$message->header()->get('udate');
```

To get message body

```
$message->body()->getMessage();
$message->body()->getEncoding();
```

To get message attachments

```
$attachments = $message->attachments();
foreach ($attachments as $attachment) {
    $attachment->getFilename();
    $attachment->getExtension();
    $attachment->getSize();
    $attachment->getEncoding();
    $attachment->getBytes();
    // get attachment content
    $attachment->getPlainBody();
    // get decoded attachment content
    $attachment->getBody();
    // Store attachment in provided path
    $attachment->store(__DIR__ . '/');
}
```

To do actions on message like delete or undelete

```
$message->action()->delete();
$message->action()->undelete();
// and don't forget to run the following to delete all messages marked for deletion
$mailbox->expunge();
```

Misc
====

[](#misc)

Changelog
---------

[](#changelog)

Version 1.0.6:

```
Fix Class Name.

```

Version 1.0.5:

```
Enhance code style.
Automate code fixes and linting.

```

Version 1.0.4:

```
Fix for plain text messages.

```

Version 1.0.3:

```
Fix Attachment Object.

```

Version 1.0.2:

```
Message delete & undelete actions added.

```

Version 1.0.1:

```
Debug data removed.

```

Version 1.0.0:

```
Initial Release.

```

Acknowledgements
----------------

[](#acknowledgements)

© 2019, Clivern. Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php).

**Imap** is authored and maintained by [@clivern](http://github.com/clivern).

###  Health Score

50

—

FairBetter than 95% of packages

Maintenance61

Regular maintenance activity

Popularity42

Moderate usage in the ecosystem

Community17

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 90.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~136 days

Recently: every ~200 days

Total

7

Last Release

2469d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6972371682cd4255285c19cb35f05151468506019b13374b14f305f5926107d6?d=identicon)[clivern](/maintainers/clivern)

---

Top Contributors

[![Clivern](https://avatars.githubusercontent.com/u/1634427?v=4)](https://github.com/Clivern "Clivern (75 commits)")[![renovate[bot]](https://avatars.githubusercontent.com/in/2740?v=4)](https://github.com/renovate[bot] "renovate[bot] (5 commits)")[![azghanvi](https://avatars.githubusercontent.com/u/2771053?v=4)](https://github.com/azghanvi "azghanvi (2 commits)")[![renovate-bot](https://avatars.githubusercontent.com/u/25180681?v=4)](https://github.com/renovate-bot "renovate-bot (1 commits)")

---

Tags

imapmailmailboxphpphp-imappop3imapclivern

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/clivern-imap/health.svg)

```
[![Health](https://phpackages.com/badges/clivern-imap/health.svg)](https://phpackages.com/packages/clivern-imap)
```

###  Alternatives

[php-imap/php-imap

Manage mailboxes, filter/get/delete emails in PHP (supports IMAP/POP3/NNTP)

1.7k13.6M55](/packages/php-imap-php-imap)[ddeboer/imap

Object-oriented IMAP for PHP

9194.1M17](/packages/ddeboer-imap)[webklex/php-imap

PHP IMAP client

4527.3M41](/packages/webklex-php-imap)[jason-munro/cypht

Lightweight Open Source webmail written in PHP and JavaScript

1.7k160.6k](/packages/jason-munro-cypht)[tedivm/fetch

A PHP IMAP Library

5171.2M8](/packages/tedivm-fetch)[directorytree/imapengine

A fully-featured IMAP library -- without the PHP extension

562336.0k14](/packages/directorytree-imapengine)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
