biegalski-llc/laravel-mailgun-webhooks

此包允许您快速轻松地将Laravel应用程序与Mailgun Webhooks集成,从而跟踪每个用户的电子邮件发送状态。还有可选功能,可以接收特定邮件gun事件的警报,例如垃圾邮件投诉和发送失败。

v1.0.1 2021-03-22 16:50 UTC

README

此包 Laravel-Mailgun-Webhooks 已被一个新且改进的解决方案所取代:Notification-Tracker

Notification-Tracker 提供了一种更健壮、更灵活且易于维护的方式来处理Webhook通知。我们强烈建议所有用户迁移到新包。

此存储库将保持可用以供参考,但将不再积极维护。

感谢您的理解。

为Laravel的Mailgun Webhooks

跟踪

此包允许您快速轻松地将Laravel应用程序与Mailgun Webhooks集成,从而跟踪每个用户的电子邮件发送状态。

  • 记录电子邮件发送给特定用户的时刻
  • 记录电子邮件未能发送给特定用户的时刻
  • 等等...

这可能是有用的信息,您可能希望将其显示给最终用户或特定的用户子集(经理、审核员、管理员等)。

电子邮件内容存储

如果需要在未来的某个时刻引用这些电子邮件,此包还会存储发送的电子邮件内容。这种信息有很多用途。

  • 通过几周前收到的电子邮件中的信息验证客户的投诉
  • 验证客户没有更改/伪造电子邮件以有利于他们的案件
  • 等等...

警报

此包允许您设置接收特定事件的警报。您可以打开或关闭想要接收的通知类型。

  • 当电子邮件未能发送给用户时收到通知
  • 当用户提交垃圾邮件投诉时收到通知
  • 等等...

安装说明

让我们开始安装。首先,您需要使用Composer安装此包。

composer require biegalski-llc/laravel-mailgun-webhooks

接下来,您需要发布配置和视图文件。

php artisan vendor:publish --tag=mailgun_webhook_config

php artisan vendor:publish --tag=mailgun_webhook_view

DotEnv配置选项

以下是一些配置此插件以满足您需求的选项。

选项

打开或关闭此包的某些功能

MAILGUN_WEBHOOKS_OPTIONS_DISABLE_CONTENT=false
MAILGUN_WEBHOOKS_OPTIONS_DISABLE_FLAG=false
MAILGUN_WEBHOOKS_OPTIONS_DISABLE_TAG=false
MAILGUN_WEBHOOKS_OPTIONS_DISABLE_VARIABLE=false

通知

打开或关闭各种通知,并设置这些通知发送给谁。

MAILGUN_WEBHOOKS_ALERTS_TO=
MAILGUN_WEBHOOKS_ALERTS_FROM_EMAIL=
MAILGUN_WEBHOOKS_ALERTS_FROM_NAME=

MAILGUN_WEBHOOKS_TRIGGER_DELIVERED=false
MAILGUN_WEBHOOKS_TRIGGER_OPENED=false
MAILGUN_WEBHOOKS_TRIGGER_PERM_FAILURE=true
MAILGUN_WEBHOOKS_TRIGGER_SPAM=true
MAILGUN_WEBHOOKS_TRIGGER_TEMP_FAILURE=true
MAILGUN_WEBHOOKS_TRIGGER_UNSUBSCRIBE=true

内容日志记录

存储所有内容会迅速增加磁盘空间的使用。打开或关闭要存储的内容。只存储您需要的!默认情况下,body_html为true,其余为false。

MAILGUN_WEBHOOKS_CONTENT_LOG_STRIP_HTML=false
MAILGUN_WEBHOOKS_CONTENT_LOG_STRIP_TEXT=false
MAILGUN_WEBHOOKS_CONTENT_LOG_BODY_HTML=true
MAILGUN_WEBHOOKS_CONTENT_LOG_BODY_PLAIN=false

自定义数据库连接

如果要将所有这些mailgun通知存储在另一个数据库中,请指定要使用的数据库连接。

MAILGUN_WEBHOOKS_CUSTOM_DATABASE=null

用户模型

默认情况下 - 我们引用 App\Users 模型来建立关系。如果你使用自定义模型或对用户模型进行了修改 - 你可能还需要将这些变量添加和编辑到你的 .env 文件中

MAILGUN_WEBHOOKS_USER_TABLE_NAME=users
MAILGUN_WEBHOOKS_USER_TABLE_EMAIL=email
MAILGUN_WEBHOOKS_USER_TABLE_KEY=id
MAILGUN_WEBHOOKS_USER_TABLE_FPQN=App\Users

签名密钥

Mailgun 允许你设置一个 HTTP webhook 签名密钥,这个密钥可以与用于连接 Mailgun API 的环境变量 MAILGUN_SECRET 中设置的 API 密钥值不同。如果你使用域级别的发送 API 密钥或已轮换 HTTP Webhook 签名密钥,这特别有用。默认值为 MAILGUN_SECRET 的值。

MAILGUN_WEBHOOKS_SIGNING_KEY=

配置完成后 - 让我们重新缓存它

php artisan config:cache

现在,你需要运行数据库迁移

php artisan migrate

最后,你需要在路由中间件组中添加一个中间件。在 app\Http\Kernel.php 中,将以下行添加到 routeMiddleware

'mailgun_webhooks' => \Biegalski\LaravelMailgunWebhooks\Middleware\ValidateMailgunWebhook::class,

你已完成所有设置!现在你只需将 API 端点添加到 Mailgun 账户中的 webhook。

在 Mailgun 中添加 Webhooks

  1. 登录
  2. 导航到 发送 -> Webhooks
  3. 点击 添加 Webhook 按钮
  4. 选择适当的 事件类型 并输入其相应的 API 端点。以下列出端点

将 "https://domain.com" 替换为你的应用程序的 URL。

用法

配置设置完成后,它开始收集数据并发送通知。你可以深入了解并提取或显示这些数据。有关使用步骤的详细信息即将推出!

关联

我与 Laravel 或 Mailgun 无关联。它们只是我在参与的项目中经常使用,这个包满足了各个项目的需求。

翻译

目前有 9 种翻译

  • 德语
  • 英语
  • 西班牙语
  • 法语
  • 意大利语
  • 荷兰语
  • 葡萄牙语
  • 俄语
  • 波兰语

更多语言即将推出!

如果你不确定 Laravel 中的本地化如何工作,请参阅https://laravel.net.cn/docs/master/localization 中的文档。

贡献

请参阅 CONTRIBUTING 以获取详细信息。

致谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件