wedevelop4you/laravel-multiple-mailers

添加多个邮件发送者

2.0.0 2021-04-13 20:18 UTC

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

当提供者名称在配置文件中不存在时抛出。