stechstudio / laravel-email-events
处理电子邮件事件webhook
0.9
2024-03-29 21:56 UTC
Requires
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ^8.0|^9.0
- phpunit/phpunit: ^9.0
- sempro/phpunit-pretty-print: ^1.0
README
所以,你的Laravel应用已经通过SendGrid、Mailgun或Postmark发送电子邮件,非常好。现在你想要捕获webhook并响应电子邮件事件,如投递或退回。这可能会有些混乱,授权webhook提交,解析负载,处理细节……然后你当然已经绑定到了一个特定的电子邮件提供商。
此包极大地简化了这一过程。它将接受任何支持电子邮件提供商的webhook提交,授权提交,将其泛化为标准数据格式,并触发Laravel事件。现在你只需要监听事件就可以了!
安装
通过Composer
$ composer require stechstudio/laravel-email-events
快速入门
1. 添加路由
在你的 routes/web.php
文件中添加
EmailEvents::routes();
这将连接到 .hooks/email-events/{provider}
的路由。
2. 配置你的认证方法
有多种认证选项可用。默认选项(适用于任何提供者)只是一个URL令牌。
在你的app .env文件中设置一个令牌密钥
MAIL_EVENTS_AUTH_TOKEN=mysecrettoken
3. 配置你的邮件提供商与你的webhook端点
登录到你的电子邮件提供商账户,找到webhook部分,并添加你的URL端点。请确保指定提供者名称,并包括认证令牌。
例如,如果你正在使用SendGrid,你会进入邮件设置页面,打开“事件通知”设置,检查你关心的所有操作,并提供你的POST URL
https://<yourdomain>/.hooks/email-events/sendgrid?auth=mysecrettoken
注意,在本地/开发模式下,你可以使用
valet share
来获取你应用程序的公开访问域名。
4. 监听事件
最后,你需要在你的应用程序中监听电子邮件事件。设置一个事件监听器并监听STS\EmailEvents\EmailEvent
。
类似于以下内容
namespace App\Listeners; use STS\EmailEvents\EmailEvent; class NotifyBouncedEmail { public function handle(EmailEvent $event) { // I only care about bounces if($event->getAction() != EmailEvent::EVENT_BOUNCED) { return; } // Ok so we have an email bounce! Need to go handle that. Maybe notify us on Slack? // ... } }