|
我用laravel 5.3. 我需要發(fā)送具有不同憑據(jù)(主機,端口,用戶名,密碼)的郵件.
我可以發(fā)送默認(rèn)的laravel配置(.env).
但我需要動態(tài)級別的實現(xiàn).
我制作配置數(shù)組,
// 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
[.........]
];
我嘗試以下發(fā)送郵件,但它不起作用.
// 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并不完全支持這種多傳輸器配置.
所以我使用替代包來實現(xiàn)它.
我的代碼是,
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();
//
});
}
它適用于多個動態(tài)運輸車.
謝謝大家 ! 來源:https://www./content-1-316501.html
|