highsolutions / laravel-mailer-daemon-catcher
一个用于指示发送的电子邮件无法投递的 Laravel 扩展包
1.5.0
2024-04-22 14:03 UTC
Requires
- php: >=8.0.2
- illuminate/console: ^9.0|^10.0|^11.0
- illuminate/support: ^9.0|^10.0|^11.0
- webklex/laravel-imap: ^4.0|^5.3
Requires (Dev)
- mockery/mockery: ^1.0
- orchestra/testbench: 8.*|9.*|10.*
- phpunit/phpunit: 9.*|10.*|11.*
README
指示发送的电子邮件无法送达收件人。
安装
此包可以通过 Composer 安装
composer require highsolutions/laravel-mailer-daemon-catcher
或者在您的 Laravel 网页应用的 composer.json
文件的 require
部分添加以下行
"require": { "highsolutions/laravel-mailer-daemon-catcher": "1.*" }
然后运行 composer update
以安装包。
然后,如果您正在使用 Laravel <= 5.4,通过添加服务提供者条目来更新 config/app.php
'providers' => [ // ... HighSolutions\LaravelMailderDaemonCatcher\MailerDaemonServiceProvider::class, ];
使用方法
检查 IMAP 收件箱
要检查是否有未阅读的 Mailer Daemon 消息在收件箱中,执行此命令
php artisan mailer-daemon:catch
包从 config/mail.php
获取配置。
我们建议将此命令添加到 app/Console/Kernel.php
以安排此任务
$schedule->command('mailer-daemon:catch')->hourly();
处理 Mailer Daemon 消息
当命令找到新消息时,它将触发一个 HighSolutions\LaravelMailderDaemonCatcher\Events\MailerDaemonMessageReceived
事件。
要捕获此事件,请在 App/Providers/EventServiceProvider.php
中创建一个对此事件的监听器
protected $listen = [ 'HighSolutions\LaravelMailderDaemonCatcher\Events\MailerDaemonMessageReceived' => [ 'App\Listeners\MailerDaemonMessageListener', ], ];
在下面的示例中,在 app/Listeners/MailerDaemonMessageListener.php
中创建一个监听器,例如。
<?php namespace App\Listeners; use HighSolutions\LaravelMailderDaemonCatcher\Events\MailerDaemonMessageReceived; class MailerDaemonMessageListener { public function __construct() { // } /** * Handle the event. * * @param \HighSolutions\LaravelMailderDaemonCatcher\Events\MailerDaemonMessageReceived $event * @return void */ public function handle(MailerDaemonMessageReceived $event) { // Access the message using $event->message... } }
测试
使用以下命令运行测试
vendor/bin/phpunit
变更日志
1.5.0
- 支持 Laravel 9.x、10.x 和 11.x
1.4.0
- 支持 Laravel 7.x 和 8.x
1.3.0
- 更改方法以提取收件人和主题方法
- 修复 - 捕获连接失败错误的所有异常
1.2.0
- 添加自定义配置以进行更详细的配置
1.1.0
- 支持 Laravel 6.0
1.0.0
- 基本版本
致谢
此包由来自波兰的软件公司 HighSolutions 开发,该公司热爱 Laravel。