biegalski-llc / laravel-mailgun-webhooks
此包允许您快速轻松地将Laravel应用程序与Mailgun Webhooks集成,从而跟踪每个用户的电子邮件发送状态。还有可选功能,可以接收特定邮件gun事件的警报,例如垃圾邮件投诉和发送失败。
Requires
- php: ^7.1|^8.0
- ext-json: *
- guzzlehttp/guzzle: ^6.2 || ^7.0.1
Requires (Dev)
- orchestra/testbench: ^4.0
- phpunit/phpunit: ^8.0|^9.3
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
- 登录
- 导航到
发送
->Webhooks
- 点击
添加 Webhook
按钮 - 选择适当的
事件类型
并输入其相应的 API 端点。以下列出端点
将 "https://domain.com" 替换为你的应用程序的 URL。
用法
配置设置完成后,它开始收集数据并发送通知。你可以深入了解并提取或显示这些数据。有关使用步骤的详细信息即将推出!
关联
我与 Laravel 或 Mailgun 无关联。它们只是我在参与的项目中经常使用,这个包满足了各个项目的需求。
翻译
目前有 9 种翻译
- 德语
- 英语
- 西班牙语
- 法语
- 意大利语
- 荷兰语
- 葡萄牙语
- 俄语
- 波兰语
更多语言即将推出!
如果你不确定 Laravel 中的本地化如何工作,请参阅https://laravel.net.cn/docs/master/localization 中的文档。
贡献
请参阅 CONTRIBUTING 以获取详细信息。
致谢
- Biegalski LLC
- paulredmond - Laravel 中验证已签名 Mailgun Webhook 的中间件。
- naszybko - 引入事件拉取请求并添加 Laravel 8 支持
- mafftor - 乌克兰翻译
- abordage - 修正大小写敏感性
- alistairreynolds - 外键约束修复
- PunchRockgroin - 添加 Mailgun HTTP webhook 签名密钥配置
- affektde - 添加 PHP8 支持
- mharkrollen2 - 修复自定义表的表名
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。