enl / swiftmailer-extras
此软件包的最新版本(dev-master)没有可用的许可信息。
Swiftmailer - PHP 邮件库的额外功能
dev-master
2016-11-27 16:00 UTC
Requires
- php: ~5.6|~7.0
- psr/log: ~1.0
- swiftmailer/swiftmailer: ~5.4
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~5.4
Suggests
- monolog/monolog: to use PSR-3 logger adapter
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());