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)3144.4k↓50.9%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 2mo 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 2d 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

48

—

FairBetter than 93% of packages

Maintenance54

Moderate activity, may be stable

Popularity43

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

2424d 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.4M52](/packages/php-imap-php-imap)[ddeboer/imap

Object-oriented IMAP for PHP

9364.1M15](/packages/ddeboer-imap)[webklex/php-imap

PHP IMAP client

4466.7M27](/packages/webklex-php-imap)[jason-munro/cypht

Lightweight Open Source webmail written in PHP and JavaScript

1.6k157.9k](/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

551284.6k9](/packages/directorytree-imapengine)

PHPackages © 2026

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