DEV Community

Cover image for POP3 PHP Client
alexdodonov
alexdodonov

Posted on • Updated on

POP3 PHP Client

Hi! In this article I want to describe my POP3 client for PHP. Originally it was created for integration test, when backend sends email and I need to check it in the inbox. Later this client was improved and now it is quite suitable for enterprize purposes.
Let's start! )

Installation

Just type

composer require mezon/pop3-client
Enter fullscreen mode Exit fullscreen mode

Usage

Firts of all you need to connect

$client = new \Mezon\Pop3\Client('ssl://your-email-server', 'login', 'password');
Enter fullscreen mode Exit fullscreen mode

Or in this way:

$client = new \Mezon\Pop3\Client();

// and somewere further
$client->connect('ssl://your-email-server', 'login', 'password');
Enter fullscreen mode Exit fullscreen mode

And then you can fetch necessary information from server. Such as:

client->getCount(); // getting count of emails on the server
Enter fullscreen mode Exit fullscreen mode

Or get headers of the message by it's id, get message's subject or even delete it:

for($i=0; $i<$client->getCount(); $i++) {
    $headers = $client->getMessageHeaders($i);
    $subject = $client->getMessageSubject($i);

    $client->deleteMessage($i);
}
Enter fullscreen mode Exit fullscreen mode

And after all things done you should close connection:

$client->quit();
Enter fullscreen mode Exit fullscreen mode

Utility functions

You can also use more high level functions.

Such as deleting email by it's subject:

$client->deleteMessagesWithSubject('Re: some subject');
Enter fullscreen mode Exit fullscreen mode

Or check if the email with the specified subject exists:

$client->messageWithSubjectExists('Re: some subject');// true or false will be returned
Enter fullscreen mode Exit fullscreen mode

Or parse header wich were fetched by the getMessageHeaders(int $i): string and fetch Message-ID field:

$messageId = \Mezon\Pop3\Client::getMessageId($headers);
Enter fullscreen mode Exit fullscreen mode

Learn more

More information can be found here:

Twitter
Mezon Framework

Top comments (0)