// readme

Horde_Imap_Client

An IMAP4rev1 / IMAP4rev2 (RFC 3501 / RFC 9051) and POP3 (RFC 1939) client library for PHP.

The package ships two codebases side by side:

  • src/ (namespace Horde\Imap\Client): the modern, PSR-4, PHP 8.2+ rewrite. Small final classes and immutable value objects, built on Horde\Socket\Client and Horde\Sasl. This is the recommended API for new code.
  • lib/ (Horde_Imap_Client_*): the legacy PSR-0 engine, retained for backward compatibility. Functional but not actively developed.

Modern usage

use Horde\Imap\Client\ConnectionConfig;
use Horde\Imap\Client\ImapClient;
use Horde\Imap\Client\ImapFetchQuery;
use Horde\Imap\Client\OpenMode;
use Horde\Imap\Client\SecureMode;
use Horde\Sasl\Credentials\PasswordCredentials;
use Horde\Sasl\Credentials\PlainSecret;

$client = new ImapClient(
    new ConnectionConfig(hostspec: 'imap.example.com', port: 993, secure: SecureMode::Ssl),
    new PasswordCredentials('alice', new PlainSecret('secret')),
);

$client->login();
$client->openMailbox('INBOX', OpenMode::Readonly);

$query = (new ImapFetchQuery())->envelope()->flags();
foreach ($client->fetch('INBOX', $client->getIdsOb('1:*'), $query)โ€ฆ