У меня есть функция для отправки писем, и она обычно работает.Теперь я хочу установить конфигурацию для Gmail и вижу ошибку "ожидаемый код ответа 250, но получил код" 530 "с сообщением" 530-5.5.1 Требуется аутентификация.Узнайте больше на \ r \ n 530 5.5.1 https://support.google.com/mail/?p=WantAuthError"
Я разблокировал капчу и учел менее безопасные приложения.Когда я использую конфигурацию .env, все работает.Но в моем случае я пытаюсь установить конфигурацию из базы данных.
protected function makeEmail($config, $data){
try{
$account = Settings::getEmailItem($config->account);
Config::set('mail.driver','smtp');
Config::set('mail.host',$account['host']);
Config::set('mail.port',$account['port']);
Config::set('mail.password',$account['password']);
Config::set('mail.username',$account['username']);
Config::set('mail.from.name',$account['from']);
Config::set('mail.from.address',$account['username']);
//Config::set('mail.encryption','tls');
$app = App::getInstance();
$app->singleton(TransportManager::class, function($app){
return new TransportManager($app);
});
$mailer = new Swift_Mailer($app['swift.transport']->driver());
Mail::setSwiftMailer($mailer);
$recipients = collect(explode(',',$config->recipients))->map(function($recipient) use($data){
$matches;
if(preg_match('/^{{\$(.+)}}/',trim($recipient),$matches)){
if(array_key_exists($matches[1],$data)){
return $data[$matches[1]];
}
}else{
return $recipient;
}
})->all();
//dd(config('mail'));
Mail::to($recipients)->send(new SendFreeEmail($config, $data));
}catch(\Exception $e){
dd($e->getMessage(), $e->getCode(), $e->getLine(), $e->getFile());
}
Когда я отображаю config('mail')
, есть мои данные из базы данных.
Ниже приведено изображение из dd(config('mail'))
Заранее благодарим за любые подсказки.
РЕДАКТИРОВАТЬ: Я решил эту проблему, но это странно,Когда я устанавливаю в качестве драйвера "sendemail" в качестве драйвера, он работает.