2017-06-21 129 views
0

我想發送電子郵件忘記密碼功能congaing新密碼。這裏是我的代碼,電子郵件不發送使用smtp laravel 5.4

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.sendgrid.net 
MAIL_PORT=587 
MAIL_USERNAME=offrs 
MAIL_PASSWORD=mypassword 
MAIL_ENCRYPTION=tls 

這裏是我發送郵件

public function sendMail(Request $request){ 
     $new_key = str_random(10); 
     $data = array(); 
     $data['email'] = $request->email; 
     $data['key'] = $new_key; 
     $checkUser = User::where('email','=',$request->email)->first(); 
     if($checkUser == null){ 
      return redirect()->back()->with('error','No User with this email exists in our record'); 
     } 
     else{ 
      Mail::send('mail.forgetPasswordMail', ['data' => $data], function ($message) use ($data) { 
       $message->from('[email protected]', 'RAIA Admin'); 
       $message->to(Input::get('email'))->subject('Your New Password'); 
      }); 
//   $useremail = $request->get('email'); 
//   $user = User::where('email', '=', $useremail)->first(); 
      $checkUser->password = bcrypt($new_key); 
      $checkUser->save(); 

      return redirect()->route('login')->with('success','Please Check Your email for new password'); 
     } 
    } 

它總是會產生誤差函數。 (1/1)Swift_TransportException 無法與主機建立連接smtp.sendgrid.net [由於目標機器主動拒絕而無法建立連接。

10061]

在Swift_Transport_StreamBuffer->初始化(陣列( '協議'=> 'TCP', '主機'=> 'smtp.sendgrid.net', '端口'=> 587, '超時' => 30,'blocking'=> 1,'tls'=> true,'type'=> 1,'stream_context_options'=> array())) in AbstractSmtpTransport.php(line 113)

Help will請欣賞。

+0

你的代碼,您可能需要更改這些SMTP憑證,如果他們活的服務器上使用。還通過電子郵件發送密碼真的不安全。 – cteski

+0

我將來會更改密碼方案。問題是電子郵件不在本地環境以及在服務器上發送。我使用Xampp作爲本地服務器和heroku作爲活動服務器。你能幫助我嗎? –

+0

有什麼幫助嗎? –

回答

0

更改下面

MAIL_ENCRYPTION=null 
+0

請爲你的代碼添加一個解釋,說明_如果你的代碼改變有助於OP(提問者)。 –