lacodix/laravel-scoped-mail-config

一个启用用户或租户特定邮件驱动配置的包。

资助包维护!
lacodix

安装次数: 126

依赖者: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分叉: 0

开放问题: 0

类型:laravel-package

v1.1.0 2024-03-12 17:20 UTC

This package is auto-updated.

Last update: 2024-09-15 14:10:41 UTC


README

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

此包使发送具有动态邮件配置的邮件变得简单。邮件配置可以由任何实现我们的 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)。有关更多信息,请参阅许可证文件