eventhomes/laravel-mandrillhooks

一个简单的Mandrill webhook控制器,用于处理事件。兼容Laravel 5+和Lumen 5+。

v2.0 2020-03-04 16:15 UTC

This package is auto-updated.

Last update: 2024-09-20 23:18:48 UTC


README

Latest Version Software License Total Downloads

一个简单的Mandrill webhook控制器,用于帮助处理电子邮件事件。适用于在应用程序内部无法通过电子邮件联系用户时通知用户。兼容Laravel 5+和Lumen 5+。

安装

composer require eventhomes/laravel-mandrillhooks

基本用法

  1. 创建一个继承自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'];
    }
}
  1. 创建处理webhook的路由。在你的routes.php文件中添加以下内容。
post('mandrill-webhook', ['as' => 'mandrill.webhook', 'uses' => 'MandrillController@handleWebHook']);
  1. 排除你的路由从CSRF保护,以避免失败。

  2. 确保你在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事件

Webhook事件类型:

贡献者

特别感谢 @rafaelbeckel 和 @minioak!