【发布时间】:2019-06-17 11:22:01
【问题描述】:
我正在使用 Laravel 5.3,我对多个邮件程序有疑问。我的默认邮件程序是在配置中设置的。根据其他帖子中的建议,当我想从另一台服务器发送邮件时,我会使用此脚本更改默认邮件。
// Backup your default mailer
$backup = Mail::getSwiftMailer();
// Setup your gmail mailer
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl');
$transport->setUsername('your_gmail_username');
$transport->setPassword('your_gmail_password');
// Any other mailer configuration stuff needed...
$gmail = new Swift_Mailer($transport);
// Set the mailer as gmail
Mail::setSwiftMailer($gmail);
// Send your message
Mail::send();
// Restore your original mailer
Mail::setSwiftMailer($backup);
所以我的问题是澄清之一。假设有多个用户同时发送邮件。如果他们都在设置 Mail::setSwiftMailer,这只会影响我的应用程序的各个实例,而不是整个应用程序,对吗?我想避免一个用户从另一个用户的帐户发送邮件。
更新:
我怀疑只要不更改如下配置值,Mail::setSwiftMailer 只会为当前用户设置 Mailer。对吗?
$mail=DB::table('mail_settings')->first();
$config = array(
'driver' => $mail->driver,
'host' => $mail->host,
'port' => $mail->port,
'from' => array('address' => $mail->from_address, 'name' => $mail->from_name),
'encryption' => $mail->encryption,
'username' => $mail->username,
'password' => $mail->password,
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false
);
Config::set('mail',$config);
【问题讨论】:
标签: php laravel concurrency swiftmailer