Download the PHP package mnapoli/imapi without Composer
On this page you can find all versions of the php package mnapoli/imapi. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download mnapoli/imapi
More information about mnapoli/imapi
Files in mnapoli/imapi
Informations about the package imapi
imapi
This library is experimental and not meant to be reused.
imapi is a high level IMAP API for PHP.
It aims to be different from other implementations:
- be very high level: you don't have to know how IMAP works (because IMAP is very ugly)
- take care of related problems like parse MIME email content or sanitize HTML in emails
- based on Horde's IMAP library rather than on PHP's IMAP extension (explained below)
- be full featured, yet leave the door open for low-level calls to Horde's library for uncovered features
- be maintained (unfortunately IMAP is not a very active topic and many good projects are unfinished or dead)
It is not based on PHP's IMAP extension, but rather on the amazing Horde library. The reason is well explained on Horde's library page:
Horde/Imap_Client is significantly faster, more feature-rich, and extensible when compared to PHP's imap (c-client) extension.
Don't be confused: almost every so-called "PHP IMAP Library" out there is nothing more than a thin-wrapper around the imap extension, so NONE of these libraries can fix the basic limitations of that extension.
Getting started
The easy way:
If you want full control on the connection, you can use Horde's constructor:
Reading
Reading the inbox
Fetching all the messages from the inbox:
Yes it's that easy. Emails are objects (Imapi\Email
) that expose all the information of the email.
If you need to synchronize emails stored locally with the IMAP server, you will probably not want to fetch the emails, i.e. their content. You can fetch only their ID, which is much faster:
Advanced queries
Both getEmails()
and getEmailIds()
can take an optional Query
object.
Reading folders
Operations
Moving emails
Deleting emails
"Deleting" means simply moving to the trash folder. Unfortunately, the trash folder is custom to each provider, so you need to explicitly provide it:
All versions of imapi with dependencies
pear-pear.horde.org/horde_imap_client Version ~2.19
php-mime-mail-parser/php-mime-mail-parser Version ~2.0
ezyang/htmlpurifier Version ~4.7