Laravel6.18.19如何优雅的切换发件账户

网络编程 2025-03-25 08:16www.168986.cn编程入门

邮件发送账户灵活切换指南——基于Laravel 6.18.19的优雅实践

在开发通知系统时,我们经常需要根据不同的业务场景使用不同的账户来发送邮件。Laravel默认设置只支持一个账户发送邮件,这显然不能满足我们的实际需求。在尝试使用Config::set()方法动态设置账户后,我们发现无法成功切换发件账户。为此,我们需要深入了解并重新设置SwiftMailer。

以下是优雅的切换发件账户的方法:

一、创建账户配置文件

在/config目录下创建my_emails.php配置文件,用于存储你的账户信息。例如:

```php

return [

'emails' => [

'a' => [

'email' => 'a@188.',

'password' => '专属客户端密码',

'smtp' => 'smtp.188.',

'port' => '465',

'encryption' => 'ssl',

'name' => '靓仔A',

],

'b' => [

'email' => 'b@188.',

'password' => '专属客户端密码',

'smtp' => 'smtp.188.',

'port' => '994',

'encryption' => 'ssl',

'name' => '靓女b',

],

],

];

```

二、创建切换助手类

在App\Mail目录下创建MailHelper类,用于动态设置发件账户。例如:

```php

namespace App\Mail;

use Illuminate\Support\Facades\Mail;

class MailHelper {

public static function setAccount($accountName) {

$transport = new \Swift_SmtpTransport(

config("my_emails.emails.{$accountName}.smtp"),

config("my_emails.emails.{$accountName}.port"),

config("my_emails.emails.{$accountName}.encryption")

);

$transport->setUsername(config("my_emails.emails.{$accountName}.email"));

$transport->setPassword(config("my_emails.emails.{$accountName}.password"));

$mailer = new \Swift_Mailer($transport);

Mail::setSwiftMailer($mailer);

Mail::alwaysFrom(config("my_emails.emails.{$accountName}.email"), config("my_emails.emails.{$accountName}.name"));

}

}

```

三、实际使用示例

现在你可以通过调用MailHelper类的setAccount方法来切换发件账户,然后发送邮件。例如:

```php MailHelper::setAccount('a'); Mail::to('boy@163.')->send(new TestMail()); MailHelper::setAccount('b'); Mail::to('girl@163.')->send(new TestMail()); ``` 这就是关于Laravel6.18.19如何优雅地切换发件账户的介绍。如果你想了解更多关于Laravel6.18.19切换发件账户的内容,请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章。希望这篇文章对你有所帮助,也希望大家能多多支持狼蚁SEO!

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by