sethsandaru/laravel-mail-switcher

Laravel Mail Switcher 预算型 Laravel 应用程序邮件切换器

1.1.0 2022-11-24 14:33 UTC

This package is auto-updated.

Last update: 2024-09-13 07:47:24 UTC


README

Build and Test codecov Latest Stable Version

Laravel Mail Credentials Switcher 是一个库,可以帮助您

  • 管理您的邮件服务凭证
  • 配置 Laravel 的邮件驱动程序并使用可用的凭证
  • 如果前一天/周/月的凭证已使用完毕,切换到另一个凭证
  • 自动重置凭证的每日/周/月使用情况

用例

您有一个个人 Laravel 应用程序(小型或中型)或者您甚至是一家初创公司。当然,您的预算很紧张。

所以您可能无法花费很多钱用于电子邮件服务提供商服务来向您的用户/客户发送电子邮件。

实际上有很多电子邮件服务提供商,它们每月(免费)提供一定数量的电子邮件发送量。

因此,使用 Laravel Mail Switcher,您将拥有实现这一目标的优势。

  • 您不需要每次其中一个服务用完时都更改 ENV
  • 您不需要手动检查电子邮件是否用完。

您需要做的所有事情,就是准备好凭证/信息,然后让 Laravel Mail Switcher 为您完成。

免费使用的电子邮件服务

  • Mailgun:3个月5000封电子邮件(约每月1666封)
  • Mailjet:每月6000封电子邮件(但每天200封)
  • Sendgrid:每天100封电子邮件(每月3000封)
  • Socketlabs:每月2000封(第一个月:40000封)
  • Sendinblue:每天300封(每月9000封)

还有很多其他服务...使用 Laravel Mail Switcher,您可以管理凭证并使用它们,直到免费使用量用完!

限制

Laravel Mail Switcher 目前只支持 SMTP 驱动程序。

即将推出其他支持。

要求

  • Laravel 9.x
  • PHP 8.1

安装

composer require sethsandaru/laravel-mail-switcher

如何使用?

Laravel Mail Switcher 不需要 GUI 来工作。我们将在 Artisan 控制台 中完成所有操作。

首先,您需要运行迁移

php artisan migrate

然后,您可以遵循下面的说明!!

列出所有电子邮件

php artisan ms:list

注意:您可以使用 --force 来显示所有凭证(即使超出了使用范围的凭证)

添加电子邮件凭证

php artisan ms:add

您将看到一些需要您回答的问题,以便添加。遵循说明!!

删除一个凭证

php artisan ms:delete {credentialId}

重置过期凭证的阈值

php artisan ms:reset

例如,您的电子邮件凭证是 daily 使用,昨天已超出。因此,今天我们将恢复它以再次使用。

定时任务设置

默认情况下,我将允许您在您的 Kernal.php 中配置定时任务/任务调度

最佳实践应在每天 00:00 进行检查

$schedule->command('ms:reset')->dailyAt("00:00");

或每分钟

$schedule->command('ms:reset')->everyMinute();

技术规格/质量保证时间

为什么我选择通过监听邮件事件来覆盖 SMTP 而不是 ServiceProvider 来覆盖 SMTP?

因为在实际项目中,我们并不总是发送电子邮件。如果我采取这种方式,那么每次有连接到我们的应用程序时可能都会产生一个查询,这并不好也不优雅。

改进这个库?

请随意将其分叉并发送 PR 给我,我会很高兴地进行审查和合并(当然,如果它完全合理的话)。

请记住写单元测试!否则,我会拒绝它。

编码风格必须遵循 PSR-1 & PSR-12。

注意

在您的项目成长壮大、表现良好之后,不要忘记订阅电子邮件服务提供商,以获得长期支持和绝对稳定的在生产中的运行。

版权

2022 by Seth Phat