PHPackages                             vitaly-alexandrovich/afeg-client - 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. [API Development](/categories/api)
4. /
5. vitaly-alexandrovich/afeg-client

ActiveLibrary[API Development](/categories/api)

vitaly-alexandrovich/afeg-client
================================

Library for afeg.ru API

0.1.0(5y ago)02PHP

Since Nov 17Pushed 5y ago1 watchersCompare

[ Source](https://github.com/vitaly-alexandrovich/afeg-client)[ Packagist](https://packagist.org/packages/vitaly-alexandrovich/afeg-client)[ RSS](/packages/vitaly-alexandrovich-afeg-client/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (2)Versions (2)Used By (0)

Клиент для взаимодействия с сервисом Afeg
=========================================

[](#клиент-для-взаимодействия-с-сервисом-afeg)

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

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

Для подключения библиотеки к Вашему проекту используете следующую команду

```
composer require "vitaly-alexandrovich/afeg-client"
```

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

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

Сперва необходимо инициировать клиент

```
$client = new \Afeg\Client('YOUR_API_KEY');
```

Где вместо `YOUR_API_KEY` необходимо указать Ваш действующий ключ для доступа к API сервиса.

Что бы сгенерировать новый Email ящик необходимо воспользоваться методом `create`

```
$email = $client->create();
```

Данный метод сгенерирует случайный email на случайном доступном на сервисе домене и вернет экземпляр класса Email для доступа к только что сгенерированному почтовому ящику.

Так же метод принимает 2 необязательных аргумента для указания точного домена (из доступных) и логина. Если какой-либо из данных параметров не указан используется случайный доступный как было показано выше.

Список доступных для использования доменов можно посмотреть используя статичный метод `getAvailableDomain` класс `Client`

```
// Получаем список досутпных для использования доменов
$availableDomains = \Afeg\Client::getAvailableDomains();

// Выбираем случайный домен
$randomDomain = $availableDomains[array_rand($availableDomains)];

// Генерируем случайный логин
$randomLogin = 'email' . rand(1111, 9999);

// Генерируем временную почту
$email = (new \Afeg\Client('YOUR_API_KEY'))->create($randomDomain, $randomLogin);
```

### Использование почты

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

Что бы узнать адрес только что сгенерированной почты можно воспользоваться методом `getAdress` экземпляра класса `Email`

```
$email->getAddress();
```

Что бы получить список новых сообщений на почте воспользуйтесь методом `fetch`

```
$response = $email->fetch();
```

либо `fetchAll` для получения всех писем (в т.ч. просмотренных ранее)

```
$response = $email->fetchAll();
```

Данные методы возвращают ответ содержащий список писем (массив с экземплярами класса Message для доступа к даным письма). В примере ниже показан пример листинга писем

```
$response = $email->fetchAll();

foreach ($response->getItems() as $id => $message) {
    print $message->getSenderName()    . PHP_EOL; // Имя отправителя
    print $message->getSenderEmail()   . PHP_EOL; // Email отправителя
    print $message->getSubject()       . PHP_EOL; // Заголовок письма
    print $message->getShortTime()     . PHP_EOL; // Коротка запись времени получения
    print $message->getTime()          . PHP_EOL; // Полная запись даты и времени получения письма
    print $message->getText()          . PHP_EOL; // Текстовое представление содержимого письма
    print $message->getHtml()          . PHP_EOL; // HTML представления содержимого письма
    print $message->getAttachments()   . PHP_EOL; // Закрепленные к пиьсму файлы

    // Для удобства получения отметки времени для дальнейшей работы с ней реализованы 2 доп. метода
    // getTime для получения отметки в виде Unix timestamp
    print $message->getTime() . PHP_EOL;

    // И getFormattedTime для форматирования отметки сразу в нужный для дальнейшей работы формат
    print $message->getFormattedTime('Y-m-d H:i:s') . PHP_EOL;
}
```

### Восстановление работы с email ящиком через время

[](#восстановление-работы-с-email-ящиком-через-время)

Экземпляр класса `Email` возвращается из клиента при создании ящика, однако может потребоваться обратится к данному ящику через какое-то время. Для этого можно инициировать экземпляр данного класса, передав в констрктор email (адрес ящика к которому необходимо обратится) и инициированный с API ключем экземпляр клиента.

Сделать это можно следующим образом:

```
$email = new Email('login@example.com', Client('YOUR_API_KEY'));
$response = $email->fetchAll();
```

### Ожидание нового сообщения

[](#ожидание-нового-сообщения)

Для того чтобы получать новые сообщения из Ваших временных почт потребуется с некоторым интервалом проверять наличие новых писем с помощью метода `fetch`.

Что бы упростить данный процесс был добавлен специальный метод `waitNewMessage`, его использование выглядит следующим образом:

```
foreach ($email->waitNewMessage() as $id => $message) {
    // Здесь код Вашего приложения при получении нового сообщения
}
```

Так же данный метод имеет 1 необязательный аргумент задающий интервал времени (в секундах) с которым будет осуществлятся проверка. По умолчанию данный интервал равен 60 секундам.

### Обработка ошибок

[](#обработка-ошибок)

При взаимодействии с API сервиса могут возникнуть исключения следующих типов `IncorrectResponseException` и `ServerErrorException`.

Первый `IncorrectResponseException` возникает в случае если полученный от сервиса ответ не соответствует ожидаемому формату, второй `ServerErrorException` возникает в случае если на сервере API произошла ошибка (код ответа не соответсвует успешному).

Если необходимо обработать ошибку API вне зависимости от ее типа, можно использовать универсальный `ApiException` т.к. первые два унаследованы от него.

Пример обработки исключения выглядит следующим образом

```
$client = new \Afeg\Client('YOUR_API_KEY');

try {
    foreach($client->create()->waitNewMessage() as $message) {
        // Полученно новое сообщение
    }
} catch (\Afeg\Exceptions\ServerErrorException $exception) {
    // Запрос к API не был выполнен
} catch (\Afeg\Exceptions\IncorrectResponseException $exception) {
    // Полученные от API ответ имеет не корректный формат
}
```

### Планы и готовность к production среде

[](#планы-и-готовность-к-production-среде)

Использование библиотеки в production среде только на Ваш страх и риск (хоть она и используется в работающих проектах).

В данный момент в библиотеки отсутствует корректная обработка ошибок и исключительных ситуаций которые могут возникнуть при взаимодействии с API (данная часть плохо описана в документации на которую я опирался при реализации). Надеюсь я найду время для того что бы разобраться с возможными ошибками самостоятельно, а так же для покрытия данной библиотеки тестами.

Только при соблюдении вышеописанных требований я смогу гарантировать корректную работу данной библиотеки.

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity2

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

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

Unknown

Total

1

Last Release

2003d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/11419996?v=4)[Vitaly Dubovik](/maintainers/vitaly-alexandrovich)[@vitaly-alexandrovich](https://github.com/vitaly-alexandrovich)

### Embed Badge

![Health badge](/badges/vitaly-alexandrovich-afeg-client/health.svg)

```
[![Health](https://phpackages.com/badges/vitaly-alexandrovich-afeg-client/health.svg)](https://phpackages.com/packages/vitaly-alexandrovich-afeg-client)
```

###  Alternatives

[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)[google/common-protos

Google API Common Protos for PHP

173103.7M50](/packages/google-common-protos)

PHPackages © 2026

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