MichaelGrimshaw/laravel-email-tracker

用于追踪发送的邮件并监听webhook事件的包

1.0.5 2021-05-26 18:57 UTC

This package is auto-updated.

Last update: 2024-09-27 02:31:36 UTC


README

此包允许您跟踪发送的邮件并查询发送邮件的统计数据。

安装完成后,您可以执行以下操作

$user  = User::find(1);
$order = Order::find(1);
Mail::to($user)
    ->linkedTo($order)
    ->category('Order Verification')
    ->send(new testMail()));

通过添加一个特性,您可以访问收件人或模型的发送历史。

// Get emails history sent to a user
$user->recipientHistory;
// Get emails history linked to a order
$order->mailableHistory;

安装

Laravel

此包可以在Laravel 5.5或更高版本中使用。

您可以通过Composer安装此包

composer require michaelgrimshaw/laravel-email-tracker

在Laravel 5.5中,服务提供程序将自动注册。在框架的旧版本中,只需在config/app.php文件中添加服务提供程序即可

'providers' => [
    // ...
    MichaelGrimshaw\MailTracker\MailTrackerServiceProvider::class,
];
'aliases' => [
    // ...
    'Mail' => MichaelGrimshaw\MailTracker\Facades\Mail::class,
    'MailStats' => MichaelGrimshaw\MailTracker\Facades\MailStats::class,
];

您可以通过运行迁移来创建邮件历史表

php artisan migrate

您可以通过以下方式发布配置文件

php artisan vendor:publish --provider="MichaelGrimshaw\MailTracker\MailTrackerServiceProvider" --tag="config"

用法

首先,将MichaelGrimshaw\MailTracker\TrackableTrait特性添加到您的User模型(s)中,并链接模型(s)

use Illuminate\Foundation\Auth\User as Authenticatable;
use MichaelGrimshaw\MailTracker\TrackableTrait;

class User extends Authenticatable
{
    use TrackableTrait;

    // ...
}

方法

现在,在发送邮件时,您可以访问额外的功能,用于控制跟踪。

linkedTo(object)

传入一个模型对象以关联邮件。

category(string)

传入一个字符串以向跟踪的邮件添加一个类别。

tracked(bool)

默认情况下,邮件始终会被跟踪。您可以使用跟踪方法打开或关闭跟踪。

跟踪事件

默认webhook URL为/api/email-tracker/event-hook。您可以自定义路由

Route::post('custome-route', MailTrackerController::class . '@processEvent');

当webhook被处理时,将调用以下事件之一

// Events
'mail.event'
'mail.processed'
'mail.dropped'
'mail.delivered'
'mail.deferred'
'mail.bounce'
'mail.open'
'mail.click'
'mail.spamreport'
'mail.group_unsubscribe'
'mail.group_resubscribe'

变更日志

请参阅变更日志以获取更多信息。

贡献

请参阅贡献指南以获取详细信息。

安全

如果您发现任何安全相关的问题,请通过电子邮件hello@michaelgrimshaw.co.uk报告,而不是使用问题跟踪器。

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。