我几个月前开始了一个项目,并将配置设置为发送邮件,一切都很好。但现在我想更改发件人的电子邮件地址,所以我更改了.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');
});
希望这会有所帮助。