.env和mail.php文件赢得';t更新-Laravel 5.1


.env and mail.php files won't update - Laravel 5.1

我几个月前开始了一个项目,并将配置设置为发送邮件,一切都很好。但现在我想更改发件人的电子邮件地址,所以我更改了.env和mail.php文件中的配置,但laravel只是忽略了更新(仍然使用旧配置发送邮件)。我清除了缓存并重新启动了所有内容,我甚至删除了这些文件,并且laravel使用删除文件配置不断发送电子邮件。我能做什么?

.env:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=someaddress@gmail.com
MAIL_PASSWORD=******
MAIL_ENCRYPTION=null

config/mail.php:

return [
    'driver' => 'smtp',
    'host' => 'smtp.gmail.com',
    'port' => 587,
    'from' => ['address' => 'someaddress@gmail.com', 'name' => 'Some Name'],
    'encryption' => 'tls',
    'username' => 'someaddress@gmail.com',
    'password' => '******',
    'sendmail' => '/usr/sbin/sendmail -bs',
    'pretend' => false,
];

控制器:

Mail::send('emails.devolucion', ['datos' => $diet], function ($message) use ($diet){
        $message->to($diet['correo'], $diet['nombre'])->subject('Devolución');
});

我以前有另一个地址,而不是"someaddress@gmail.com",并且laravel一直使用旧的电子邮件地址而不是新的。它忽略了文件更新。

听起来你的配置文件正在被缓存,然后Laravel正在从缓存中读取它们,这就是为什么你的更新没有被反映出来的原因。

我们可以告诉Laravel清除缓存并使用以下命令重新开始:

php artisan config:clear

Laravel邮件

注释掉邮件功能中的发件人地址(如果你有),那么配置中的值将自动采用

Mail::send('emails.newuser', $mailData,
  function( $message) {
  //$message->from('feedback@example.com', 'No Reply');
  $message->to('user@example.com');
  $message->subject('Mail Subject');
});

希望这会有所帮助。