eventhomes / laravel-mandrillhooks
一个简单的Mandrill webhook控制器,用于处理事件。兼容Laravel 5+和Lumen 5+。
v2.0
2020-03-04 16:15 UTC
Requires
- php: >=5.5.9
- illuminate/routing: ~5.0|^6.0|^7.0
- illuminate/support: ~5.0|^6.0|^7.0
This package is auto-updated.
Last update: 2024-09-20 23:18:48 UTC
README
一个简单的Mandrill webhook控制器,用于帮助处理电子邮件事件。适用于在应用程序内部无法通过电子邮件联系用户时通知用户。兼容Laravel 5+和Lumen 5+。
安装
composer require eventhomes/laravel-mandrillhooks
基本用法
- 创建一个继承自MandrillWebhookController的控制器。然后你可以处理任何Mandrillapp webhook事件。
use EventHomes\Api\Webhooks\MandrillWebhookController; class MyController extends MandrillWebhookController { /** * Handle a hard bounced email * * @param $payload */ public function handleHardBounce($payload) { $email = $payload['msg']['email']; } /** * Handle a rejected email * * @param $payload */ public function handleReject($payload) { $email = $payload['msg']['email']; } }
- 创建处理webhook的路由。在你的routes.php文件中添加以下内容。
post('mandrill-webhook', ['as' => 'mandrill.webhook', 'uses' => 'MandrillController@handleWebHook']);
-
排除你的路由从CSRF保护,以避免失败。
-
确保你在Mandrill中将webhook指向你的路由。你可以在这里做: https://mandrillapp.com/settings/webhooks
(可选) Webhook身份验证
如果你想增加webhook的安全性,将MandrillWebhookServiceProvider提供者添加到config/app.php中的providers数组。
'providers' => [ ... EventHomes\Api\Webhooks\MandrillWebhookServiceProvider::class, ],
接下来,通过以下方式发布配置:
php artisan vendor:publish --provider="EventHomes\Api\Webhooks\MandrillWebhookServiceProvider"
简单地在配置文件中添加你的Mandrill webhook密钥,请求将进行身份验证。
Webhook事件
贡献者
特别感谢 @rafaelbeckel 和 @minioak!