2017 © Pedro Peláez
 

library phalcon-mailer

Phalcon Mailer Service

image

slowprog/phalcon-mailer

Phalcon Mailer Service

  • Sunday, March 5, 2017
  • by SlowProg
  • Repository
  • 1 Watchers
  • 0 Stars
  • 369 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 15 Forks
  • 0 Open issues
  • 7 Versions
  • 0 % Grown

The README.md

Phalcon Mailer

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

Код заимствован из Laravel 4 и адаптирован под Phalcon., (*2)

Установка

C помощью composer:, (*3)

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

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

или выполнить в командной строке:, (*5)

composer require slowprog/phalcon-mailer

Должно получится примерно так:, (*6)

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

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

composer update

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

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

    return $service->mailer();
};

или с передачей параметров на этапе инициализации сервиса, (*8)

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

    return $service->mailer();
};

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

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

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

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

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

Настройки

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

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

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

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

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

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

use Phalcon\Queue\Beanstalk;

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

    return $queue;
};

Пример отложенной отправки почты, (*16)

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

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

Пример обработчика очереди https://github.com/slowprog/phalcon-mailer/blob/master/example/mailer.php, (*18)

The Versions

05/03 2017

dev-master

9999999-dev https://github.com/SlowProg/phalcon-mailer

Phalcon Mailer Service

  Sources   Download

GPLv2

The Requires

 

The Development Requires

by Andrey Tyshev

mail mailer phalcon

05/03 2017

3.0.0

3.0.0.0 https://github.com/SlowProg/phalcon-mailer

Phalcon Mailer Service

  Sources   Download

GPLv2

The Requires

 

The Development Requires

by Andrey Tyshev

mail mailer phalcon

25/12 2016

2.0.3

2.0.3.0 https://github.com/SlowProg/phalcon-mailer

Phalcon Mailer Service

  Sources   Download

GPLv2

The Requires

 

The Development Requires

by Andrey Tyshev

mail mailer phalcon

02/10 2015

2.0.2

2.0.2.0 https://github.com/SlowProg/phalcon-mailer

Phalcon Mailer Service

  Sources   Download

GPLv2

The Requires

 

The Development Requires

by Andrey Tyshev

mail mailer phalcon

07/09 2015

2.0.1

2.0.1.0 https://github.com/vanchelo/phalcon-mailer

Phalcon Mailer Service

  Sources   Download

GPLv2

The Requires

 

The Development Requires

mail mailer phalcon

07/09 2015

2.0

2.0.0.0 https://github.com/vanchelo/phalcon-mailer

Phalcon Mailer Service

  Sources   Download

GPLv2

The Requires

 

The Development Requires

mail mailer phalcon

29/11 2014

1.1.0

1.1.0.0 https://github.com/vanchelo/phalcon-mailer

Phalcon Mailer Service

  Sources   Download

GPLv2

The Requires

 

mail mailer phalcon