POP3 PHP Client

Dodonov Alexey
2 min readDec 28, 2020

--

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

Usage

Firts of all you need to connect

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

Or in this way:

$client = new \Mezon\Pop3\Client();// and somewere further
$client->connect('ssl://your-email-server', 'login', 'password');

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

client->getCount(); // getting count of emails on the server

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);
}

And after all things done you should close connection:

$client->quit();

Utility functions

You can also use more high level functions.

Such as deleting email by it’s subject:

$client->deleteMessagesWithSubject('Re: some subject');

Or check if the email with the specified subject exists:

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

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

$messageId = \Mezon\Pop3\Client::getMessageId($headers);

Learn more

More information can be found here:

Twitter

dev.to

Slack

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response