netglue/zf-postmark

此包已被废弃且不再维护。未建议替代包。

用于接收由 Postmark 发送的 Webhooks 的 Zend Framework 模块

1.0.1 2018-08-31 15:15 UTC

This package is auto-updated.

Last update: 2021-09-02 12:03:54 UTC


README

Latest Stable Version Coverage Status Build Status Maintainability Test Coverage

用途

此模块/包可以添加到 ZF3 应用中,以便轻松处理由 Postmark 发送的 Webhooks,例如投递、点击、打开和退回事件。它还可以用于处理入站电子邮件消息。

尚未在 ZF2 应用上测试,因此结果可能不同。可能是因为依赖项太新,无法工作,但将其移植到 ZF2 不会很困难。

安装

使用 composer 使用 "netglue/zf-postmark" 安装,在您的 application.config.php 中启用模块,使用模块名称 'NetgluePostmark',并添加自定义配置以更改路由 URL 或设置基本 HTTP 验证 (推荐)

在 composer 安装过程中,Zend 的组件安装器应自动为您注入模块名称。

配置基本验证

为了减轻随机 POST 请求对您的入站或事件 Webhook 端点的影响,您应该配置基本验证,因此请根据 config/postmark.local.php.dist 的内容创建一个本地配置文件并进行配置。

默认情况下,用户名和密码分别为 postmarkPa55w0rd,您的 Webhook URL 将为 https://postmark:Pa55w0rd@my-domain.com/postmark-outbound-webhook

在您的 Postmark 账户中设置 Webhooks

假设您已使用默认路由并启用了基本验证,您的端点将是

https://username:password@your-domain.com/postmark-outbound-webhook 用于退回、点击、投递等,以及 https://username:password@your-domain.com/postmark-inbound-webhook 用于入站电子邮件消息。

转到 您的 Postmark 账户,选择您要配置的服务器,点击设置并输入入站或出站 Webhook 的正确 URL,如果已配置,则可选地提供基本验证凭据。

出站 Webhook 接受投递、退回、垃圾邮件投诉、打开和点击事件,而入站 Webhook 仅接受入站电子邮件事件/消息。

监听事件

控制器触发了您可以使用 Zend 的 Event Manager 包监听的一致事件。退回被细分为硬退回和软退回,因此,您可以选择记录软退回并以不同的方式对硬退回做出反应。所有事件名称都作为常量列在 \NetgluePostmark\EventManager\AbstractEvent 中,并且是

const EVENT_HARD_BOUNCE    = 'postmark.event.hard_bounce';
const EVENT_SOFT_BOUNCE    = 'postmark.event.soft_bounce';
const EVENT_BOUNCE_OTHER   = 'postmark.event.bounce_other';
const EVENT_OPEN           = 'postmark.event.open';
const EVENT_CLICK          = 'postmark.event.click';
const EVENT_DELIVERY       = 'postmark.event.delivery';
const EVENT_SPAM_COMPLAINT = 'postmark.event.spam_complaint';
const EVENT_INBOUND        = 'postmark.event.inbound';

示例记录监听器

\NetgluePostmark\Listener\LoggingListener 中有一个示例聚合监听器,您可以通过阅读 dist 配置文件 config/postmark.local.php.dist 中的注释来附加它。

事件由 \NetgluePostmark\Service\EventEmitter 触发 - 使用目标代理工厂是最简单的事件订阅方式,因为只有在向 webhook 发送帖子时,您的监听器才会从容器中检索。

有关编写监听器的文档,请参阅 Zend 事件管理器文档

测试

切换到模块安装的位置,执行 composer install,然后执行 composer test

贡献

欢迎提交 PR。请为新功能编写测试。

支持

欢迎提交问题,但请理解,找到回答支持请求的时间非常有限,因此可能会有较长的等待时间。

关于

Netglue 在英格兰德文郡制作网站和应用。我们希望这对您有用,并且无论哪种方式我们都欢迎反馈 :)。