打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
php – 如何在laravel 5中有条件地更改邮件传输器?

我用laravel 5.3.
我需要发送具有不同凭据(主机,端口,用户名,密码)的邮件.

我可以发送默认的laravel配置(.env).

但我需要动态级别的实现.

我制作配置数组,

   // Pre-Mail Setup Config.            $store_config = [              'list' =>                    //SET 1                 ['from_name' => 'sender1',                'from_address' => 'from_adderss1',                'return_address' => 'reply1',                'subject' => 'subject1',                'host' => 'host1',                'port' => 'post1',                'authentication' => 'auth1',                'username' => 'uname1',                'password' => 'pass1'],                 //SET 2                [.........],                 //SET 3                [.........]            ];

我尝试以下发送邮件,但它不起作用.

 // Inside Foreach.$transporter = \Swift_MailTransport::newInstance('smtp.gmail.com', 465, 'ssl')                ->setUsername($config['username'])                ->setPassword($config['password']);$mailer = \Swift_Mailer::newInstance($transporter);$message->from($config['from_address'], $config['from_name']);$message->to('To_Email, 'Name')        ->subject('My Subject')        ->setBody('My Content', 'text/html');$mailer->send($message);

我的代码出了什么问题?

可能吗?

或任何其他解决方案?

解决方法:

最后我找到了解决这个问题的方法.

实际上Laravel 5并不完全支持这种多传输器配置.

所以我使用替代包来实现它.

我的代码是,

    foreach ($store_configs['list'] as $store_config) {        // Create Custom Mailer Instances.        $mailer = new \YOzaz\LaravelSwiftmailer\Mailer();        $transport = \Swift_SmtpTransport::newInstance(                                           $store_config['host'],                                            $store_config['port'],                                            $store_config['authentication']);        // Assign Dynamic Username.        $transport->setUsername($store_config['username']);        // Assign Dynamic Password.        $transport->setPassword($store_config['password']);        $smtp = new \Swift_Mailer($transport);        $mailer->setSwiftMailer($smtp);            $mailer->send('template', ['data'], function ($message) use ($queue) {                // Default Response goes here                $message->from('From Address', 'From Name');                $message->to($email, 'Name')->subject('My Subject')                    ->setBody('My HTML', 'text/html');                $message->getSwiftMessage();                //            });   }

它适用于多个动态运输车.

谢谢大家 !

来源:https://www.icode9.com/content-1-316501.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ThinkPHP下实现代发邮件
CATEGORY ARCHIVES: SYMFONY
【Laravel系列4.1】连接数据库与原生查询
错误解决
【config】Laravel配置教程
Axis2体系结构中文手册
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服