lacodix / laravel-scoped-mail-config
一个启用用户或租户特定邮件驱动配置的包。
v1.1.0
2024-03-12 17:20 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^9.0|^10.0|^11.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.13
- illuminate/database: ^9.47|^10.0|^11.0
- larastan/larastan: ^2.0.1
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0|^7.8|^8.0
- nunomaduro/phpinsights: ^2.6
- orchestra/testbench: ^7.19|^8.8|^9.0
- pestphp/pest: ^1.21|^2.20
- pestphp/pest-plugin-laravel: ^1.1|^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-09-15 14:10:41 UTC
README
此包使发送具有动态邮件配置的邮件变得简单。邮件配置可以由任何实现我们的 HasMailConfig 接口的模式或类提供。
考虑到这一点,它非常适合 spatie 的 Laravel-multitenancy 等多租户包。
它还提供了将邮件配置保存在用户或团队模型中的可能性,或者如果您只是想能够允许您的管理员用户设置动态邮件配置。
文档
您可以在我们的文档站点上找到此包的完整文档。
安装
composer require lacodix/laravel-scoped-mail-config
基本用法
只需将我们的接口添加到您的范围模型中
use Illuminate\Database\Eloquent\Model; use Lacodix\LaravelScopedMailConfig\Concerns\HasMailConfig; class Tenant extends Model implements HasMailConfig { public function getMailConfig($name): array { return [ 'transport' => 'smtp', 'host' => 'my.smtp.server', 'port' => 587, 'encryption' => null, 'username' => 'my@email.login', 'password' => 'mypassword', 'timeout' => 60, 'local_domain' => null, 'from' => [ 'address' => 'my@email.login', 'name' => 'myname', ], ]; } }
现在,在您的 AppServiceProvider 中,您只需要通知包如何解析邮件配置。默认情况下,包解析当前认证用户。因此,如果您想使用特定于用户的邮件配置,则只需跳过此步骤。
use Lacodix\LaravelScopedMailConfig\Facades\ScopedMail;
public function register(): void
{
ScopedMail::resolveScopeUsing(fn () => Tenant::getCurrentTenant());
}
然后,您可以通过使用我们的外观(如 Laravel 的 Mail 外观)来发送具有此动态配置的邮件。
ScopedMail::to('my@email.de')->send($mailable);
ScopedMail 只是扩展了标准 Mail 外观,因此拥有您从 Laravel Mail 已知的所有功能。
最后,您还可以在测试中使用此外观。
ScopedMail::fake();
测试
composer test
贡献
请在提交之前运行以下命令并解决潜在问题,并考虑为新功能添加测试。
composer rector:test composer insights composer csfixer:test composer phpstan:test
变更日志
有关最近更改的更多信息,请参阅变更日志。
鸣谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅许可证文件。