PHPackages                             floor12/yii2-module-mailing - 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. [Mail &amp; Notifications](/categories/mail)
4. /
5. floor12/yii2-module-mailing

ActiveYii2-module[Mail &amp; Notifications](/categories/mail)

floor12/yii2-module-mailing
===========================

Mailing module for yii2 projects.

0.1.13(7y ago)3782MITPHPPHP &gt;=7.1.0CI failing

Since Jul 16Pushed 1y ago1 watchersCompare

[ Source](https://github.com/floor12/yii2-module-mailing)[ Packagist](https://packagist.org/packages/floor12/yii2-module-mailing)[ RSS](/packages/floor12-yii2-module-mailing/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (10)Versions (15)Used By (0)

yii2-module-mailing
===================

[](#yii2-module-mailing)

[![Build Status](https://camo.githubusercontent.com/dc3afc569aece9d63b3321efff2c7944c79e8613a0179557e10613e4e03a0066/68747470733a2f2f7472617669732d63692e6f72672f666c6f6f7231322f796969322d6d6f64756c652d6d61696c696e672e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/floor12/yii2-module-mailing)[![Latest Stable Version](https://camo.githubusercontent.com/9107356da4ab8ecb43d168278997e3023847a9fe883c28282a2f65498b20160e/68747470733a2f2f706f7365722e707567782e6f72672f666c6f6f7231322f796969322d6d6f64756c652d6d61696c696e672f762f737461626c65)](https://packagist.org/packages/floor12/yii2-module-mailing)[![Latest Unstable Version](https://camo.githubusercontent.com/a741eb8d700dbda5ccc79b1dbc4e6629fd751d6cd7fbffe8159d774219572422/68747470733a2f2f706f7365722e707567782e6f72672f666c6f6f7231322f796969322d6d6f64756c652d6d61696c696e672f762f756e737461626c65)](https://packagist.org/packages/floor12/yii2-module-mailing)[![Total Downloads](https://camo.githubusercontent.com/6dfe008853669d94c3f42a4b4db3ec0575dbdc6f8ef635987f10c2a36f142434/68747470733a2f2f706f7365722e707567782e6f72672f666c6f6f7231322f796969322d6d6f64756c652d6d61696c696e672f646f776e6c6f616473)](https://packagist.org/packages/floor12/yii2-module-mailing)[![License](https://camo.githubusercontent.com/3a44a42c1f98ce1399320a8f93f64aa9b3ab97025f4666e5d6930ce74a68fe64/68747470733a2f2f706f7365722e707567782e6f72672f666c6f6f7231322f796969322d6d6f64756c652d6d61696c696e672f6c6963656e7365)](https://packagist.org/packages/floor12/yii2-module-mailing)

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

**Отправка рассылок возможна на:**

- произвольный список email адресов, введенных непосредственно при составлении рассылки;
- по заранее составленным спискам (их можно составлять в интерфейсе админки модуля, но часто бывает удобно составлять их динамически самостоятельно);
- извлекая адреса из одной или нескольких ActiveRecord моделей вашего приложения.

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

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

#### Ставим модуль

[](#ставим-модуль)

Выполняем команду

```
$ composer require floor12/yii2-module-mailing
```

иди добавляем в секцию "requred" файла composer.json

```
"floor12/yii2-module-mailing" : "*"
```

Выполняем миграцию для созданию необходимых таблиц

```
$ ./yii migrate --migrationPath=@vendor/floor12/yii2-module-mailing/src/migrations/
```

Если до этого не был установлен модуль [floor12\\files\\Module](https://github.com/floor12/yii2-module-files), который присутствует тут в зависимостях, то создаем папку `@app/storage` c правами веб-сервера на запись, так же выполняем миграцию для модуля файлов:

```
$ ./yii migrate --migrationPath=@vendor/floor12/yii2-module-files/src/migrations/
```

Добавляем данный модуль в конфиг приложения (а так же модуль `floor12/yii2-module-files`, если он не был установлен в приложении прежде)

```
'modules' => [
        'mailing' => [
            'class' => 'floor12\mailing\Module',
            'editRole' => 'admin',
            'layout' => '@app/views/layouts/columns',
            'fromEmail' => 'no-reply@example.com',
            'fromName' => 'Служба рассылок сайта example.com',
            'htmlTemplate' => 'mailing-main',
            'domain' => 'https://aexample.com',
            'linkedModels' => [
                \common\models\User::class,
                \common\models\Clients::class,
            ]
        ],
        'files' => [
            'class' => 'floor12\files\Module',
        ],
    ],
    ...
```

**Параметры**:

- `editRole` - роль пользователя, который имеет доступ к контроллерам админки модуля.
- `layout` - алиас лейаута, которые необходимо использовать в админке модуля.
- `fromEmail` - email адрес отправителя рассылок.
- `fromName` - От имени кого отправляются рассылки.
- `htmlTemplate` - название темплейта в проекте, которые используется для рассылок
- `domain` - так как запуск очереди идет через консоль, а она ничего не знает о домене сайта, то прописываем домен приложения, для работы отслеживания открытых писем и переходов по ссылкам.
- `linkedModels` - Массив классов ActiveRecord, данные из которых необходимо использовать для формирования адресов получателей. Данные классы должны имплементировать `floor12\mailing\interfaces\MailingRecipientInterface`.
- `unsubscribeRoute` - путь к экшену отписки от рассылки (пользователь помечается как отписанный), обычно менять не стоит.

**Запуск очереди**

Для запуска очередь необходимо выполнить команду:

```
$./yii mailing/queue

```

Рекомендую добавить ее в крон с периодичностью минут в 15.

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

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

Админка модуля доступна по адресу `https://example.com/mailing`.

**Раздел рассылок:**[![Image](https://camo.githubusercontent.com/630ec171bca2b6c7ed675154c658929d09bd2d19f783158251dc5179f2abf8c8/68747470733a2f2f666c6f6f7231322e6e65742f696d616765732f796969322d6d6f64756c652d6d61696c696e672d696e6465782e706e67)](https://camo.githubusercontent.com/630ec171bca2b6c7ed675154c658929d09bd2d19f783158251dc5179f2abf8c8/68747470733a2f2f666c6f6f7231322e6e65742f696d616765732f796969322d6d6f64756c652d6d61696c696e672d696e6465782e706e67)**Раздел списков:**[![Image](https://camo.githubusercontent.com/15e52e5e10e2109640b254d50cd021c45f25b9ebd2a1348676576c22db99f52f/68747470733a2f2f666c6f6f7231322e6e65742f696d616765732f796969322d6d6f64756c652d6d61696c696e672d6c6973742e706e67)](https://camo.githubusercontent.com/15e52e5e10e2109640b254d50cd021c45f25b9ebd2a1348676576c22db99f52f/68747470733a2f2f666c6f6f7231322e6e65742f696d616765732f796969322d6d6f64756c652d6d61696c696e672d6c6973742e706e67)**Раздел адресов:**[![Image](https://camo.githubusercontent.com/aa2a6a76a652a3df1cc2326ef5a43c590e1c4c300a2cbf3989d53472c203b6dd/68747470733a2f2f666c6f6f7231322e6e65742f696d616765732f796969322d6d6f64756c652d6d61696c696e672d6974656d732e706e67)](https://camo.githubusercontent.com/aa2a6a76a652a3df1cc2326ef5a43c590e1c4c300a2cbf3989d53472c203b6dd/68747470733a2f2f666c6f6f7231322e6e65742f696d616765732f796969322d6d6f64756c652d6d61696c696e672d6974656d732e706e67)

При редактировании рассылки, если в конфиге модуля были указаны какие-либо классы в массиве `linkedModels`, то компоненты Select2 с выбором объектов этих классов будут сформированы автоматически. На изображениях показан пример с классом `common\models\User`.

[![Image](https://camo.githubusercontent.com/199c1d3935dc8623b6050b1fd347fc1e64fe7148d26db7f923179095c14c57d2/68747470733a2f2f666c6f6f7231322e6e65742f696d616765732f796969322d6d6f64756c652d6d61696c696e672d7570646174652e706e67)](https://camo.githubusercontent.com/199c1d3935dc8623b6050b1fd347fc1e64fe7148d26db7f923179095c14c57d2/68747470733a2f2f666c6f6f7231322e6e65742f696d616765732f796969322d6d6f64756c652d6d61696c696e672d7570646174652e706e67)

В примере на изображении класс `User` реализует `floor12\mailing\interfaces\MailingRecipientInterface` следующим образом, благодаря чему, в форме генерируется поле "пользователи".

```
class User extends MyActiveRecord implements IdentityInterface, MailingRecipientInterface
{

    public static function getMailingList(): array
    {
        return self::find()->select('fullname')->indexBy('id')->column();
    }

    public static function getMailingLabel(): string
    {
        return "Пользователи";
    }

    public function getMailingEmail(): string
    {
        return $this->email;
    }
    ...
```

Остальные подробности можно узнать из исходного кода.

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance28

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity56

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 ~17 days

Recently: every ~49 days

Total

14

Last Release

2679d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8dc98d778cb18db41a1e5b9df722c56f65f655de44fe0d581484cd8dea31b928?d=identicon)[floor12](/maintainers/floor12)

---

Top Contributors

[![floor12](https://avatars.githubusercontent.com/u/8406969?v=4)](https://github.com/floor12 "floor12 (36 commits)")

---

Tags

emailyii2yiiyii 2mailingfloor12yii2 module

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/floor12-yii2-module-mailing/health.svg)

```
[![Health](https://phpackages.com/badges/floor12-yii2-module-mailing/health.svg)](https://phpackages.com/packages/floor12-yii2-module-mailing)
```

###  Alternatives

[floor12/yii2-module-files

Yii2 module to upload and manage files to your models.

1612.6k6](/packages/floor12-yii2-module-files)[tuyakhov/yii2-notifications

The extension provides support for sending notifications across a variety of delivery channels, including mail, SMS, Slack etc. Notifications may also be stored in a database so they may be displayed in your web interface.

6736.7k2](/packages/tuyakhov-yii2-notifications)[nterms/yii2-mailqueue

Email queue component for yii2 that works with yii2-swiftmailer.

84133.5k2](/packages/nterms-yii2-mailqueue)[djagya/yii2-sparkpost

A library provides Yii2 integration with SparkPost mail service

1816.4k](/packages/djagya-yii2-sparkpost)[baibaratsky/php-mailgun

Mailgun API PHP library and Yii extension (as well as Yii2)

3224.9k](/packages/baibaratsky-php-mailgun)[tigrov/yii2-mailqueue

Yii2 mail queue component for yii2-swiftmailer.

196.4k](/packages/tigrov-yii2-mailqueue)

PHPackages © 2026

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