puz / dynamic-mail
在运行时更改Laravel邮件驱动配置。
0.1.2
2020-08-04 18:58 UTC
Requires
- php: >=5.6.4
- illuminate/mail: >=5.4.0
- illuminate/support: >=5.4.0
This package is auto-updated.
Last update: 2024-09-05 03:54:50 UTC
README
A laravel package for changing email setting in runtime.
注意: 我已将要求设置为5.4,因为这是最新版本。尚未尝试其他版本,也未进行测试。如果您想使用此包为更早版本的laravel,请创建问题,如果技术可行,我会实现它。
安装
composer require puz/dynamic-mail
- 将
\Puz\DynamicMail\DynamicMailServiceProvider::class,
添加到您的活动提供者列表中。 - 将外观添加到别名列表。您可以选择覆盖Laravel自己的外观(无需担心,此包仅扩展功能)或添加一个专门用于动态邮件配置的新外观。
<?php // ... return [ // ... 'aliases' => [ // ... // Overwrite Laravel mailer 'Mail' => Puz\DynamicMail\Facades\DynamicMail::class, // Own mailer 'DynamicMail' => Puz\DynamicMail\Facades\DynamicMail::class, ] ];
- 您几乎准备好了!
如何使用它
在示例中,我已经用这个包的外观覆盖了Laravel邮件器外观。
假设你有以下三种情况
- 您使用mailgun驱动,但需要从另一个域名发送
- 您使用smtp驱动,但需要更改为已定义在
config/services.php
中的不同驱动程序 - 您使用smtp驱动,但需要更改为未定义的另一个服务
以下是操作方法!
<?php // 1 Mail::with(['domain' => 'another.domain.tld'])->to('..')->send('..'); // 2 Mail::via('mailgun')->to('..')->send('..'); // 3 Mail::via('mailgun')->with(['domain' => 'hello.tld', 'secret' => 'https://www.youtube.com/watch?v=Iz-8CSa9xj8'])->to('..')->send('..');
关于方法的简要说明
via 方法允许您更改驱动程序。每次您使用 via 方法时,它都会创建一个新的邮件器实例。这样您仍然可以使用默认的邮件器。它以字符串作为第一个参数,但允许您在第二个参数中直接设置配置(类似于 with)。
with 是用于设置配置的。它接受一个数组,并使用与在 config/services.php
中相同的数组。
支持的驱动程序
我已将其设置为仅允许使用Laravel的一些集成邮件服务。以下是以下服务:
- smtp
- sendmail
- ses
- mailgun
- mandrill