enl/swiftmailer-extras

此软件包的最新版本(dev-master)没有可用的许可信息。

Swiftmailer - PHP 邮件库的额外功能

dev-master 2016-11-27 16:00 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:10 UTC


README

此库为 Swiftmailer 库 添加了两个功能

  • 适配 PSR-3 兼容的日志记录器;
  • 可以切换从消息队列到实时发送的邮件类;

日志记录

要使用任何类型的 PSR-3 兼容的日志记录器与 Swift 一起使用,您需要使用日志适配器注册插件

use Enl\Swiftmailer\Logger\PsrAdapter;

$logger = new Logger(); // Logger MUST implement \Psr\Log\LoggerInterface
$adapter = new PsrAdapter($logger);

$mailer = new Swift_Mailer();
$mailer->registerPlugin(new Swift_Plugins_LoggerPlugin($adapter));

可选队列

众所周知,要使用 Swift_Mailer 的队列功能,您需要定义如下传输

$transport = new Swift_Transport_SpoolTransport(new Swift_MemorySpool());
$mailer = new Swift_Mailer($transport);

直到您需要立即发送 这封电子邮件... 为了实现这个目标,我创建了一个 Swift 邮件器的包装器,它做到了这一点

$realTransport = new Swift_Transport_NullTransport();
$spool = new Swift_MemorySpool();
$mailer = new Enl\Swifthmailer\Mailer($realTransport, $spool);

要向队列发送消息,应按常规使用邮件器

$mailer->send(new Swift_Message());

要立即发送确切的一封消息,应在发送之前使用 immediately 函数

$mailer->immediately()->send(new Swift_Message());
// Next message will be sent to a queue!
$mailer->send(new Swift_Message());