laravel从多个smtp电子邮件发送邮件

时间:2019-01-22 15:11:58

标签: php email laravel-5.7

我需要从多封邮件中发送邮件 例如support@email.cominfo@email.com

在.env文件中,我输入了默认设置

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=mymail@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls

我使用markdown电子邮件

public function build()
    {
        return $this->markdown('emails.users.resetpassword',[
            'url' => url(config('app.url').route('password.reset', $this->token, false)),
            'user' => $this->notifiable,
            ]);
    }

这很好

我尝试即时更改发件人邮件

Config::set('mail.encryption','ssl');
Config::set('mail.host','smtps.example.com');
Config::set('mail.port','465');
Config::set('mail.username','youraddress@example.com');
Config::set('mail.password','password');
Config::set('mail.from',  ['address' => 'youraddress@example.com' , 'name' => 'Your Name here']);

但是它仍然是从主帐户发送的!!

如何更改发件人邮件? 预先感谢

1 个答案:

答案 0 :(得分:0)

您可以在运行时覆盖配置

use \Swift_Mailer;
use \Swift_SmtpTransport as SmtpTransport;

$transport = (new SmtpTransport(config('mail.host_other'), config('mail.port_other'), config('mail.encryption_other')))->setUsername(config('mail.username_other'))->setPassword(config('mail.password_other'));

$mailer = new Swift_Mailer($transport);
Mail::setSwiftMailer($mailer);
Mail::send(...);

在您的mail.php配置文件中,添加

<?php

return [
    ....
    ....
    'host_other' => env('HOST_OTHER'),
    'port_other' => env('PORT_OTHER'),
    'encryption_other' => env('MAIL_ENCRYPTION_OTHER'),
    'username_other' => env('MAIL_USERNAME_OTHER'),
    'password_other' => env('MAIL_PASSWORD_OTHER'),


    ....
    ....
]

在此处https://swiftmailer.symfony.com/docs/sending.html

获取更多信息