wedevelop4you / laravel-multiple-mailers
添加多个邮件发送者
2.0.0
2021-04-13 20:18 UTC
Requires
- php: >=7.0.0
This package is auto-updated.
Last update: 2024-09-13 04:24:02 UTC
README
我制作这个包是因为我想使用多个邮件。这是一个简单的小包,用于在Laravel中使用多个邮件。我并不打算进一步扩展它。只有当我想要添加自己的功能时才会。你可以自由使用这个包,以下是如何使用它的简要说明。
安装
需要PHP 7.0或更高版本以及Laravel 7或更高版本。
使用Composer安装此包。
composer require wedevelop4you/laravel-multiple-mailers
运行以下命令发布配置文件
php artisan vendor:publish --provider="WeDevelop4You\LaravelMultipleMailers\Providers\MailerServiceProvider" --tag=config
配置
在multiple-mailer中配置邮件发送者
账户配置
/* * 'Choose a name for your mail config' => [ * 'username' => 'Your email address', (required) * 'password' => 'Your email password', (required) * 'name' => 'Your name send by the email' (The default name is MAIL_FROM_NAME in your .env file) * 'provider' => 'Your provider' (The default provider is default) * ] */ 'accounts' => [ 'example' => [ 'username' => 'mailer@example.org', 'password' => env('MAIL_PASSWORD'), ] ]
提供者配置
/* * The providers are the same as mailers in the mail config */ 'provider' => [ 'default' => [ 'transport' => 'smtp', 'host' => env('MAIL_HOST'), 'port' => env('MAIL_PORT'), 'encryption' => env('MAIL_ENCRYPTION'), 'timeout' => null, 'auth_mode' => null, ], ]
队列配置
/* * 'worker' => The name of the queue worker. (The default name of the worker is 'default') * 'default' => Always use the queue worker name on mail classes with ShouldQueue. */ 'queue' => [ 'worker' => '', 'default' => false, ]
如果你想要将所有邮件都在同一个工作进程名称下排队,但除了一个或多个,那么你可以在你的邮件类中设置onQueue。代码不会覆盖队列名称。
如何使用它
发送邮件时,你需要设置邮件发送者。邮件发送者名称是在mailer配置中设置的名称。
Mail::mailer('example');
示例
Mail::mailer('example')->to('test@example.org')->send(new ExampleMail());
现在在你的邮件类中导入MultipleMailer。
use Queueable, SerializesModels, MultipleMailer;
最后,在你的邮件类中的__construct或你自己的函数中设置邮件发送者名称。你需要给它与上面相同的名称
$this->setMultipleMailerName('example');
示例
public function __construct() { $this->setMultipleMailerName('example'); }
异常
MailerAccountNotFoundException
当邮件发送者名称在配置文件中不存在时抛出。
MailerProviderNotFoundException
当提供者名称在配置文件中不存在时抛出。