在論壇上進行長時間搜索後,我找不到我的情況下,一個有用的解決方案。
我做了很多功能在laravel發送電子郵件,並始終工作正常。
這個時候,我得到了一個錯誤,你看到如下:在laravel 5發送電子郵件不工作
ErrorException in StreamBuffer.php line 95:
stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
這裏我.ENV文件
APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:FMtA/k/okcPZB/HbWGbw5YiBM4EC3njxxLbgcdM1GrA=
APP_URL=http://localhost
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=myDB
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=<<Here_my_password>>
MAIL_ENCRYPTION=tls
MAIL_SENDER=Administration
這裏我的功能來發送郵件(控制器驗證):
public function register(Request $request)
{
$this->validateLogin($request);
$token = hash('sha256', str_random(100) . time(), false);
$user = new User();
$user->email = $request->get('email');
$user->password = bcrypt($request->get('password'));
$user->remember_token = $token;
//$user->save();
$sent = Mail::send('auth.emails.createAccount', ['token' => $token], function ($m) use ($user) {
$m->from(getenv('MAIL_USERNAME'), getenv('MAIL_SENDER'));
$m->to($user->email, $user->email)->subject(config('constants.AccountCreated'));
});
if($sent == 1)
{
$msg = Lang::get('messages.EmailSent');
$this->showLoginForm($msg);
}
else
{
return redirect('/login')->withErrors([
'email' => Lang::get('messages.UserAddingError')
]);
}
}
我試圖將協議從tls更改爲ssl,甚至將prot從587更改爲465
我只有在使用t他的項目,我不明白爲什麼,儘管所有我所執行的搜索...
任何建議嗎?
非常感謝:)
我的Windows 10 這是一個Ubuntu命令 –
你可以嘗試下我[安裝它們(http://www.thewindowsclub.com/manage -trusted-根證書窗口),但你最好的選擇是禁用對等認證 –
,你告訴我,不是在生產建議我不能禁用它... –