phalcon-mailer 0,0 Packagist

Mailer Service for Phalcon 2.0

3 years after

Phalcon Mailer

Удобная библиотека для отправки Вашей почты в Phalcon 2.0.

Код заимствован из Laravel 4 и адаптирован под Phalcon.

Установка

C помощью composer:

Добавить в файл composer.json в секцию require следующую строку:

"vanchelo/phalcon-mailer": "~2.0"

или выполнить в командной строке:

composer require vanchelo/phalcon-mailer

Должно получится примерно так:

{
  "require": {
    "vanchelo/phalcon-mailer": "~2.0"
  }
}

После этого выполните в терминале команду:

composer update

Инициализация сервиса

/**
 * Register Mailer Service
 */
$this->di['mailer'] = function() {
    $service = new MailerService();

    return $service->mailer();
};

или с передачей параметров на этапе инициализации сервиса

/**
 * Register Mailer Service
 */
$this->di['mailer'] = function() {
    $service = new MailerService([
        'driver' => 'smtp', // mail, sendmail, smtp
        'host'   => 'smtp.email.com',
        'port'   => 587,
        'from'   => [
            'address' => '[email protected]',
            'name'    => 'My Cool Company',
        ],
        'encryption' => 'tls',
        'username'   => '[email protected]',
        'password'   => 'some-strong-password',
        'sendmail'   => '/usr/sbin/sendmail -bs',
        // Путь используемый для поиска шаблонов писем
        'viewsDir'   => __DIR__ . '/../app/views/', // optional
    ]);

    return $service->mailer();
};

Отправка письма

Пример для контроллера, но работать будет не только в контроллерах

$this->mailer->send('emails/xxx', [
    'test' => 'test' // Переменные для передачи в шаблон
], function($message) {
    $message->to('[email protected]');
    $message->subject('Test Email');
});

где, emails/xxx - шаблон письма расположенный в каталоге views, (app/views/emails/xxx.[phtml|volt])

По умолчанию, если в контейнере зарегистрирован сервис view библиотека будет использовать его, соответственно можно использовать любой удобный доступный шаблонизатор (phtml, volt и т.д.)

Настройки

Настройки по умолчанию необходимо прописать в конфигурационном файле вашего приложения config/config.php

<?php
return new \Phalcon\Config([
    'mail' => [
        'driver' => 'smtp', // mail, sendmail, smtp
        'host'   => 'smtp.email.com',
        'port'   => 587,
        'from'   => [
            'address' => '[email protected]',
            'name'    => 'My Cool Company'
        ],
        'encryption' => 'tls',
        'username'   => '[email protected]',
        'password'   => 'some-strong-password',
        'sendmail'   => '/usr/sbin/sendmail -bs',
        // Путь используемый для поиска шаблонов писем
        'viewsDir'   => __DIR__ . '/../app/views/', // optional
    ],
]);

Если будет необходимость, настройки почты можно вынести в отдельный конфигурационный файл

UPD. Реализована возможность использования очередей для отложенной отправки почты через реализованный в Phalcon сервис очередей Beanstalk

Очереди (отложенная отправка почты)

Для отложенной отправки почты у вас должен быть зарегистрирован сервис queue в контейнере, например:

use Phalcon\Queue\Beanstalk;

$this->di['queue'] = function () {
    $queue = new Beanstalk();
    $queue->connect(); // ?

    return $queue;
};

Пример отложенной отправки почты

$this->mailer->queue('emails/xxx', [
    'test' => 'test' // Переменные для передачи в шаблон
], function($message) {
    $message->to('[email protected]');
    $message->subject('Test Email');
});

Вся отложенная почта помещается в очередь mailer (не знаю насколько это правильно)

Пример обработчика очереди https://github.com/vanchelo/phalcon-mailer/blob/master/example/mailer.php

Related Repositories

awesome-php

awesome-php

A curated list of amazingly awesome PHP libraries, resources and shiny things. ...

incubator

incubator

Incubator adapters/functionality for the Phalcon PHP Framework ...

awesome-phalcon

awesome-phalcon

A curated list of awesome Phalcon libraries and resources ...

phalconization

phalconization

Phalcon repositories on Github ...

phalcon-debugbar

phalcon-debugbar

A powerful debug and profilers tool for the Phalcon Framework ...


Top Contributors

vanchelo

Dependencies

package version
php >=5.4.0
swiftmailer/swiftmailer ~5.3
jeremeamia/superclosure ~1.0.1
dev phalcon/devtools ~2.0

Releases

-   2.0.1 zip tar
-   2.0 zip tar
-   1.1.0 zip tar
-   1.0.0 zip tar