DEV Community

Cover image for POP3 PHP Client
alexdodonov
alexdodonov

Posted on • Edited on

4 2

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

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay