stof / stampie-extra
v1.2.0
2021-09-08 13:39 UTC
Requires
- php: ^7.2 || ^8.0
- stampie/stampie: ^1.0
- symfony/event-dispatcher: ^2.3 || ^3.0 || ^4.0 || ^5.0
Requires (Dev)
- php-http/mock-client: ^1.0
- phpunit/phpunit: ^8.5.20 || ^9.5.9
- psr/log: ^1.0
- symfony/phpunit-bridge: ^5.3
Suggests
- psr/log: to log sent emails to a LoggerInterface
Conflicts
This package is not auto-updated.
Last update: 2022-02-01 12:21:03 UTC
README
StampieExtra为Stampie提供基于事件的扩展点。它使用Symfony EventDispatcher组件。
用法
Stampie Extra邮件发送器封装了你的Stampie邮件发送器,在发送过程中提供扩展点。
<?php // include the Composer autoloading require 'vendor/autoload.php'; $httpClient = new Http\Adapter\Guzzle6\Client(); $innerMailer = new Stampie\Mailer\SendGrid($httpClient, 'username:password'); $dispatcher = new Symfony\Component\EventDispatcher\EventDispatcher(); $mailer = new Stampie\Extra\Mailer($innerMailer, $dispatcher); $message = // Create your Stampie message $mailer->send($message);
邮件发送器在发送消息之前将触发stampie.pre_send
事件,允许你进行一些更改。
内置监听器
ImpersonateListener
ImpersonateListener允许你在开发过程中替换邮件的收件人,将所有消息发送到单个电子邮件地址。它将在包含原始收件人的X-Stampie-To
标题中添加内容。
<?php $dispatcher->addEventSubscriber(new Stampie\Extra\EventListener\ImpersonateListener('stampie@example.com'));
LoggerListener
LoggerListener允许你记录发送的电子邮件。它期望一个实现了PSR-3 LoggerInterface的日志记录器。
<?php // create a listener and configure it $logger = new Monolog\Logger('stampie'); // ... $dispatcher->addEventSubscriber(new Stampie\Extra\EventListener\LoggerListener($logger));
SpoolMailer
Stampie Extra还提供了一个SpoolMailer,用于在内存中存储消息,并在清空队列时发送它们。
<?php $mailer = // Create your mailer... $spoolMailer = new Stampie\Extra\SpoolMailer($mailer); $message = // Create your Stampie message... $spoolMailer->send($message); // Do some logic, for instance flushing the response to the user // Flush the queue, sending the message with the inner mailer $spoolMailer->flushSpool();