stampie/extra

基于事件的 stampie/stampie 插件

v1.3.0 2022-05-03 22:03 UTC

This package is auto-updated.

Last update: 2024-08-30 01:11:36 UTC


README

CI

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();

测试

Stampie Extra 使用 持续集成Travis 测试,并旨在达到高覆盖率。