gpt4 book ai didi

php - 如何有条件地更改 laravel 5 中的邮件传输器?

转载 作者:可可西里 更新时间:2023-10-31 23:45:27 29 4
gpt4 key购买 nike

我使用的是 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();
//
});
}

它适用于多个动态转运器。

感谢大家!

关于php - 如何有条件地更改 laravel 5 中的邮件传输器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41327415/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com