slowprog/phalcon-mailer
Composer 安装命令:
composer require slowprog/phalcon-mailer
包简介
Phalcon Mailer Service
README 文档
README
Удобная библиотека для отправки Вашей почты в Phalcon 2.0.
Код заимствован из Laravel 4 и адаптирован под Phalcon.
##Установка
C помощью composer:
Добавить в файл composer.json в секцию require следующую строку:
"slowprog/phalcon-mailer": "~2.0"
или выполнить в командной строке:
composer require slowprog/phalcon-mailer
Должно получится примерно так:
{
"require": {
"slowprog/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' => [ '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(); };
Отправка письма
Пример для контроллера, но работать будет не только в контроллерах
$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])
По умолчанию, если в контейнере зарегистрирован сервис view библиотека будет использовать его, соответственно можно использовать любой удобный доступный шаблонизатор (phtml, volt и т.д.)
Настройки
Настройки по умолчанию необходимо прописать в конфигурационном файле вашего приложения config/config.php
<?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 ], ]);
Если будет необходимость, настройки почты можно вынести в отдельный конфигурационный файл
UPD. Реализована возможность использования очередей для отложенной отправки почты через реализованный в Phalcon сервис очередей Beanstalk
Очереди (отложенная отправка почты)
Для отложенной отправки почты у вас должен быть зарегистрирован сервис queue в контейнере, например:
use Phalcon\Queue\Beanstalk; $this->di['queue'] = function () { $queue = new Beanstalk(); $queue->connect(); // ? return $queue; };
Пример отложенной отправки почты
$this->mailer->queueView('emails/xxx', [ 'test' => 'test' // Переменные для передачи в шаблон ], function($message) { $message->to('some_email@email.com'); $message->subject('Test Email'); });
Вся отложенная почта помещается в очередь mailer (не знаю насколько это правильно)
Пример обработчика очереди https://github.com/slowprog/phalcon-mailer/blob/master/example/mailer.php
slowprog/phalcon-mailer 适用场景与选型建议
slowprog/phalcon-mailer 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 9.61k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2015 年 10 月 01 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「mail」 「mailer」 「phalcon」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 slowprog/phalcon-mailer 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 slowprog/phalcon-mailer 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 slowprog/phalcon-mailer 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Courier offers a convenient and painless solution for creating emails tailored for your Kirby website.
Creates new sare mail transport for laravel applications
Mail libraries used by Zimbra Api
Email+ extends Kirby's email capabilities by adding support for multiple email services using the same Kirby email API.
Uniondrug Trace Client Component for uniondrug/framework
Mandrill Api Integration for Yii2
统计信息
- 总下载量: 9.61k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 15
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPLv2
- 更新时间: 2015-10-01