我有一个发送电子邮件的功能,它通常是有效的。现在我想为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“设置为驱动程序时,它可以工作。
发布于 2018-06-07 05:18:47
你配置你的gmail帐户设置了吗?
您需要保持允许安全性较低的应用程序:打开。
https://stackoverflow.com/questions/50729606
复制相似问题