PHPackages                             afinogen89/get-mail - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. afinogen89/get-mail

ActiveYii2-extension[HTTP &amp; Networking](/categories/http)

afinogen89/get-mail
===================

Get Mail from POP3

0.0.7(7y ago)117.8k↓19.8%3[1 issues](https://github.com/Afinogen/get-mail/issues)[1 PRs](https://github.com/Afinogen/get-mail/pulls)BSD-3-ClausePHPPHP &gt;=5.6.0

Since Mar 30Pushed 3y ago4 watchersCompare

[ Source](https://github.com/Afinogen/get-mail)[ Packagist](https://packagist.org/packages/afinogen89/get-mail)[ RSS](/packages/afinogen89-get-mail/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (4)DependenciesVersions (9)Used By (0)

Get Mail from POP3
==================

[](#get-mail-from-pop3)

Класс для получение писем с почтового сервера по протоколу pop3
Часть работы с протоколом было выдернута из zf2, остальное самописное.

Изначально писалось для yii2, но можно использовать и без него.

Установка
---------

[](#установка)

Установка происходит через composer

```
php composer.phar require --prefer-dist afinogen89/get-mail "dev-master"

```

или добавлением

```
"afinogen89/get-mail": "*"

```

в файл `composer.json` .

Использование
-------------

[](#использование)

Работа только с протоколом:

```
$pop3 = new afinogen89\getmail\protocol\Pop3('example.ru');
$pop3->login('data@example.ru', '123456');
$msgList = $pop3->getList();
$pop3->logout();
```

Работа с письмами:

Протокол POP3

```
$storage = new afinogen89\getmail\storage\Pop3(['host' => 'example.ru', 'user' => 'data@example.ru', 'password' => '123456']);
$msg = $storage->getMessage(1);
$msg->saveToFile('/tmp/1.eml');
echo $msg->getHeaders()->getSubject();

foreach($msg->getParts() as $part) {
    echo $part->getContentDecode().PHP_EOL;
}

foreach($msg->getAttachments() as $t) {
    $t->saveToFile('/tmp/' . $t->filename);
}
```

Через папку с письмами (расширение файлов eml)

```
$storage = new afinogen89\getmail\storage\File(['path' => '../email/']);
$msg = $storage->getMessage(1);
$msg->saveToFile('/tmp/1.eml');
echo $msg->getHeaders()->getSubject();
```

Пример подключения к gmail

```
$storage = new afinogen89\getmail\storage\Pop3(['host' => 'pop.gmail.com', 'user' => 'test@gmail.com', 'password' => 'pass', 'ssl' => 'SSL']);
```

Для генерации пароля необходимо создать приложение на странице

Подключение нужного хранилища через конфиг, позволяет быстро переключаться не меняя код

```
$storage = afinogen89\getmail\storage\Storage::init(
    [
        'storage' => \afinogen89\getmail\storage\Storage::POP3,
        'host' => 'pop.gmail.com',
        'user' => 'test@gmail.com',
        'password' => '123456',
        'ssl' => 'SSL'
    ]
);
```

Подключение к yandex
Чтобы корректно заработал скрипт нужно в настройках (Почта - Все настройки - Почтовые программы) поставить галочки "С сервера pop.yandex.ru по протоколу POP3" и "При получении почты по POP3 письма в почтовом ящике Яндекс.Почты помечать как прочитанные".

```
$storage = new \afinogen89\getmail\storage\Pop3(
    [
        'host' => 'pop.yandex.ru',
        'user' => 'test@yandex.ru',
        'password' => '123456',
        'ssl' => 'SSL'
    ]
);
```

English version
---------------

[](#english-version)

Installation
------------

[](#installation)

The preferred way to install this extension is through [composer](http://getcomposer.org/download/).

Either run

```
php composer.phar require --prefer-dist afinogen89/get-mail "dev-master"

```

or add

```
"afinogen89/get-mail": "*"

```

to the require section of your `composer.json` file.

Usage
-----

[](#usage)

Once the extension is installed, simply use it in your code by POP3 protocol:

```
$pop3 = new afinogen89\getmail\protocol\Pop3('example.ru');
$pop3->login('data@example.ru', '123456');
$msgList = $pop3->getList();
$pop3->logout();
```

Get message from mail:

```
$storage = new afinogen89\getmail\storage\Pop3(['host' => 'example.ru', 'user' => 'data@example.ru', 'password' => '123456']);
$msg = $storage->getMessage(1);
$msg->saveToFile('/tmp/1.eml');
echo $msg->getHeaders()->getSubject();

foreach($msg->getParts() as $part) {
    echo $part->getContentDecode().PHP_EOL;
}

foreach($msg->getAttachments() as $t) {
    $t->saveToFile('/tmp/' . $t->filename);
}
```

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity32

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 97.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~236 days

Recently: every ~351 days

Total

7

Last Release

2692d ago

PHP version history (2 changes)0.0.1PHP &gt;=5.4.0

0.0.7PHP &gt;=5.6.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/4a856f992e632236d6a7f362a3f182d099d0a3fec56a233e2ec88117da724512?d=identicon)[Afinogen89](/maintainers/Afinogen89)

---

Top Contributors

[![Afinogen](https://avatars.githubusercontent.com/u/3824625?v=4)](https://github.com/Afinogen "Afinogen (70 commits)")[![c7v](https://avatars.githubusercontent.com/u/50216354?v=4)](https://github.com/c7v "c7v (1 commits)")[![lisiy50](https://avatars.githubusercontent.com/u/630968?v=4)](https://github.com/lisiy50 "lisiy50 (1 commits)")

---

Tags

yii2extensionpop3 get mail

### Embed Badge

![Health badge](/badges/afinogen89-get-mail/health.svg)

```
[![Health](https://phpackages.com/badges/afinogen89-get-mail/health.svg)](https://phpackages.com/packages/afinogen89-get-mail)
```

###  Alternatives

[linslin/yii2-curl

Easy and nice cURL extension with RESTful support for Yii2

1801.5M20](/packages/linslin-yii2-curl)[bryglen/yii2-apns-gcm

Yii 2 Apns and Gcm together

54282.3k2](/packages/bryglen-yii2-apns-gcm)[joni-jones/yii2-wschat

Online chat based on web sockets and ratchet php

981.3k](/packages/joni-jones-yii2-wschat)[yiiplus/yii2-websocket

使用yii2封装 websocket 扩展

212.7k](/packages/yiiplus-yii2-websocket)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
