casperboone/laravel-expiring-email

自动过期电子邮件通知

0.1.1 2021-08-16 11:22 UTC

This package is auto-updated.

Last update: 2024-09-16 18:20:41 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包允许您轻松发送过期电子邮件。这对于您不希望直接通过电子邮件发送敏感数据,并希望确保没有敏感信息在没有控制该数据的情况下保留在收件人邮箱中的情况非常有用。

通过使用本包的过期电子邮件驱动程序,而不是在通知中使用常规电子邮件驱动程序,所有发送给接收者的都是指向原始电子邮件内容的签名和过期链接。

安装

您可以通过Composer安装此包

composer require casperboone/laravel-expiring-email

您应该使用以下命令发布并运行迁移

php artisan vendor:publish --provider="CasperBoone\LaravelExpiringEmail\LaravelExpiringEmailServiceProvider" --tag="expiring-email-migrations"
php artisan migrate

您可以选择使用以下命令发布配置文件

php artisan vendor:publish --provider="CasperBoone\LaravelExpiringEmail\LaravelExpiringEmailServiceProvider" --tag="expiring-email-config"

您可以选择使用以下命令发布视图以自定义替换电子邮件

php artisan vendor:publish --provider="CasperBoone\LaravelExpiringEmail\LaravelExpiringEmailServiceProvider" --tag="expiring-email-views"

电子邮件在过期日期后立即变得无法访问。然而,为了在过期日期后也从数据库中删除电子邮件,您应该安排每天运行“clean”命令。

// app/Console/Kernel.php

protected function schedule(Schedule $schedule)
{
    $schedule->command(CleanExpiredEmails::class)->daily();
}

使用方法

此包的基本用法非常简单,您只需将通知的via()方法中的'email'替换为过期电子邮件通知通道即可。

 public function via($notifiable): array
 {
-    return ['mail'];
+    return [ExpiringEmailChannel::class];
 }

这会向原始收件人发送一个指向原始电子邮件内容的签名过期链接。默认过期日期在配置文件中设置,但可以在通知中使用ExpiringMailMessage根据情况设置。

 public function toMail($notifiable): MailMessage
 {
-    return (new MailMessage)
+    return (new ExpiringMailMessage)
         ->subject('Secret document')
+        ->expiresInDays(7)
         ->markdown('secret_document_email');
 }

开发

测试

composer test

静态分析

composer psalm

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTING

安全漏洞

有关报告安全漏洞的详细信息,请参阅我们的安全策略

鸣谢

许可

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