PHPackages                             laravel-unisender/unisender - 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. laravel-unisender/unisender

ActiveLibrary

laravel-unisender/unisender
===========================

Unisender API for Laravel 12

1.03(9mo ago)017MITPHPPHP ^8.1

Since Aug 6Pushed 9mo agoCompare

[ Source](https://github.com/green-tmz/unisender)[ Packagist](https://packagist.org/packages/laravel-unisender/unisender)[ RSS](/packages/laravel-unisender-unisender/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (6)Used By (0)

Laravel Unisender Package
=========================

[](#laravel-unisender-package)

Полноценная интеграция Unisender API для Laravel 12 с поддержкой всех основных методов API.

[![Latest Version on Packagist](https://camo.githubusercontent.com/854c89229b74fb21c9bd9622fb77eead0875384b4074779d0cba844be5b6fe32/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c61726176656c2d756e6973656e6465722f756e6973656e6465722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/laravel-unisender/unisender)[![Tests](https://camo.githubusercontent.com/7026140493d73be7d8a22b1ccfea5ce4424d5f2bf16b482197b604232c6cb228/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6c61726176656c2d756e6973656e6465722f756e6973656e6465722f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/laravel-unisender/unisender/actions/workflows/run-tests.yml)[![Total Downloads](https://camo.githubusercontent.com/1218f364e5f0c5d6c8be28ef4fe5522667230f0e8cfd5b9b78a5d82ddb37377b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6c61726176656c2d756e6973656e6465722f756e6973656e6465722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/laravel-unisender/unisender)

Возможности
-----------

[](#возможности)

- ✅ Отправка SMS и email
- ✅ Управление списками контактов
- ✅ Импорт и экспорт контактов
- ✅ Создание и управление кампаниями
- ✅ Управление пользовательскими полями
- ✅ Валидация отправителей
- ✅ Artisan команды для CLI
- ✅ REST API контроллеры
- ✅ Facade для удобного использования
- ✅ Подробное логирование
- ✅ Обработка ошибок
- ✅ Конфигурация через .env

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

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

### Через Composer

[](#через-composer)

```
composer require laravel-unisender/unisender
```

### Публикация конфигурации

[](#публикация-конфигурации)

```
php artisan vendor:publish --provider="LaravelUnisender\UnisenderServiceProvider" --tag="unisender-config"
```

### Настройка переменных окружения

[](#настройка-переменных-окружения)

Добавьте в файл `.env`:

```
# Unisender API Configuration
UNISENDER_API_KEY=your_api_key_here
UNISENDER_ENCODING=UTF-8
UNISENDER_RETRY_COUNT=4
UNISENDER_TIMEOUT=null
UNISENDER_COMPRESSION=false
UNISENDER_PLATFORM="Laravel Unisender Service"
UNISENDER_LANG=en

# Default Settings
UNISENDER_DEFAULT_SMS_SENDER=YourSMSName
UNISENDER_DEFAULT_EMAIL_SENDER=noreply@yourdomain.com
UNISENDER_DEFAULT_LIST_ID=1

# Logging
UNISENDER_ENABLE_LOGGING=true
UNISENDER_LOG_LEVEL=info

# Cache
UNISENDER_ENABLE_CACHE=false
UNISENDER_CACHE_TTL=3600

# Rate Limiting
UNISENDER_ENABLE_RATE_LIMITING=false
UNISENDER_RATE_LIMIT_PER_MINUTE=60

# Webhooks
UNISENDER_WEBHOOK_URL=https://yourdomain.com/webhooks/unisender
UNISENDER_WEBHOOK_SECRET=your_webhook_secret
```

**Важно:** Замените `your_api_key_here` на ваш реальный API ключ от Unisender.

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

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

### Через Service

[](#через-service)

```
use LaravelUnisender\Services\UnisenderService;

class YourController extends Controller
{
    public function sendSms(UnisenderService $unisender)
    {
        $response = $unisender->sendSms([
            'phone' => '+380971234567',
            'text' => 'Hello from Laravel!',
            'sender' => 'MyApp'
        ]);

        if ($unisender->isSuccess($response)) {
            return 'SMS sent successfully!';
        } else {
            return 'Error: ' . $unisender->getErrorMessage($response);
        }
    }
}
```

### Через Facade

[](#через-facade)

```
use LaravelUnisender\Facades\Unisender;

// Отправка SMS
$response = Unisender::sendSms([
    'phone' => '+380971234567',
    'text' => 'Hello from Laravel!',
    'sender' => 'MyApp'
]);

// Отправка email
$response = Unisender::sendEmail([
    'email' => 'user@example.com',
    'subject' => 'Welcome!',
    'body' => 'Welcome to our service!',
    'sender' => 'noreply@yourdomain.com'
]);

// Получение списков
$lists = Unisender::getLists();

// Подписка контакта
$response = Unisender::subscribe([
    'email' => 'user@example.com',
    'list_ids' => '1,2,3'
]);
```

### Через Dependency Injection

[](#через-dependency-injection)

```
public function sendNotification(UnisenderService $unisender)
{
    $response = $unisender->sendEmail([
        'email' => 'user@example.com',
        'subject' => 'Notification',
        'body_html' => 'Hello!This is a notification.',
        'sender' => 'noreply@yourdomain.com'
    ]);

    return $response;
}
```

Artisan Команды
---------------

[](#artisan-команды)

### Отправка SMS

[](#отправка-sms)

```
php artisan unisender:sms "+380971234567" "Hello from Laravel!" --sender="MyApp"
```

### Отправка Email

[](#отправка-email)

```
php artisan unisender:email "user@example.com" "Welcome!" --body="Welcome to our service!" --sender="noreply@yourdomain.com"
```

### Получение списков контактов

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

```
php artisan unisender:lists
php artisan unisender:lists --format=json
```

### Проверка статуса API

[](#проверка-статуса-api)

```
# Базовая проверка
php artisan unisender:status

# Подробная проверка с тестированием всех эндпоинтов
php artisan unisender:status --verbose
```

REST API
--------

[](#rest-api)

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

### Отправка SMS

[](#отправка-sms-1)

```
POST /api/unisender/sms
Content-Type: application/json

{
    "phone": "+380971234567",
    "text": "Hello from API!",
    "sender": "MyApp"
}
```

### Отправка Email

[](#отправка-email-1)

```
POST /api/unisender/email
Content-Type: application/json

{
    "email": "user@example.com",
    "subject": "Welcome!",
    "body": "Welcome to our service!",
    "sender": "noreply@yourdomain.com"
}
```

### Получение списков

[](#получение-списков)

```
GET /api/unisender/lists
```

### Создание списка

[](#создание-списка)

```
POST /api/unisender/lists
Content-Type: application/json

{
    "title": "New List",
    "description": "Description of the list"
}
```

### Подписка контакта

[](#подписка-контакта)

```
POST /api/unisender/subscribe
Content-Type: application/json

{
    "email": "user@example.com",
    "list_ids": "1,2,3",
    "tags": "vip,customer"
}
```

Доступные методы
----------------

[](#доступные-методы)

### SMS и Email

[](#sms-и-email)

- `sendSms(array $params)` - Отправка SMS
- `sendEmail(array $params)` - Отправка email
- `createEmailMessage(array $params)` - Создание email сообщения
- `createSmsMessage(array $params)` - Создание SMS сообщения

### Списки контактов

[](#списки-контактов)

- `getLists()` - Получение всех списков
- `createList(array $params)` - Создание списка
- `updateList(array $params)` - Обновление списка
- `deleteList(array $params)` - Удаление списка

### Контакты

[](#контакты)

- `subscribe(array $params)` - Подписка контакта
- `unsubscribe(array $params)` - Отписка контакта
- `exclude(array $params)` - Исключение контакта
- `importContacts(array $params)` - Импорт контактов
- `getContact(array $params)` - Получение информации о контакте
- `getContactFieldValues(array $params)` - Получение значений полей контакта
- `isContactInLists(array $params)` - Проверка наличия контакта в списках

### Кампании

[](#кампании)

- `createCampaign(array $params)` - Создание кампании
- `getCampaigns(array $params = [])` - Получение кампаний
- `getCampaignStatus(array $params)` - Получение статуса кампании

### Поля и теги

[](#поля-и-теги)

- `getFields()` - Получение пользовательских полей
- `createField(array $params)` - Создание поля
- `updateField(array $params)` - Обновление поля
- `deleteField(array $params)` - Удаление поля
- `getTags()` - Получение тегов
- `deleteTag(array $params)` - Удаление тега

### Асинхронные операции

[](#асинхронные-операции)

- `taskExportContacts(array $params)` - Экспорт контактов
- `getTaskResult(array $params)` - Получение результата задачи

### Дополнительные методы

[](#дополнительные-методы)

- `getCurrencyRates()` - Получение курсов валют
- `validateSender(array $params)` - Валидация отправителя
- `setSenderDomain(array $params)` - Установка домена отправителя
- `getSenderDomainList(array $params = [])` - Получение списка доменов
- `getCheckedEmail(array $params = [])` - Получение проверенных email

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

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

```
try {
    $response = $unisender->sendSms($params);

    if ($unisender->isSuccess($response)) {
        // Успешная операция
        $result = $response['result'];
    } else {
        // Ошибка API
        $errorMessage = $unisender->getErrorMessage($response);
        Log::error('Unisender API error: ' . $errorMessage);
    }
} catch (\Exception $e) {
    // Исключение (сетевая ошибка, неверный API ключ и т.д.)
    Log::error('Unisender exception: ' . $e->getMessage());
}
```

Логирование
-----------

[](#логирование)

Сервис автоматически логирует все API запросы и ошибки. Логи можно найти в `storage/logs/laravel.log`.

Кэширование
-----------

[](#кэширование)

Для включения кэширования API ответов установите в `.env`:

```
UNISENDER_ENABLE_CACHE=true
UNISENDER_CACHE_TTL=3600
```

Rate Limiting
-------------

[](#rate-limiting)

Для включения ограничения запросов установите в `.env`:

```
UNISENDER_ENABLE_RATE_LIMITING=true
UNISENDER_RATE_LIMIT_PER_MINUTE=60
```

Лицензия
--------

[](#лицензия)

Этот пакет распространяется под лицензией MIT. См. файл [LICENSE](LICENSE) для получения дополнительной информации.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance58

Moderate activity, may be stable

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~0 days

Total

5

Last Release

279d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b451deec0a52e166f90140ebc2a20701832eb52cd13b50a9dc58f253ed852382?d=identicon)[green-tmz](/maintainers/green-tmz)

---

Top Contributors

[![green-tmz](https://avatars.githubusercontent.com/u/113636905?v=4)](https://github.com/green-tmz "green-tmz (8 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/laravel-unisender-unisender/health.svg)

```
[![Health](https://phpackages.com/badges/laravel-unisender-unisender/health.svg)](https://phpackages.com/packages/laravel-unisender-unisender)
```

###  Alternatives

[anourvalar/eloquent-serialize

Laravel Query Builder (Eloquent) serialization

11320.2M21](/packages/anourvalar-eloquent-serialize)[namu/wirechat

A Laravel Livewire messaging app for teams with private chats and group conversations.

54324.5k](/packages/namu-wirechat)[statamic-rad-pack/runway

Eloquently manage your database models in Statamic.

135192.6k5](/packages/statamic-rad-pack-runway)

PHPackages © 2026

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