2016-05-26 172 views
1

我正在第一時間在Laravel使用smtp發送郵件。Laravel 5電子郵件錯誤handeling當用戶名或密碼錯誤

我已經配置了我的gmail的詳細信息,並且每件事情都正常,我收到了郵件到我的收件箱。

但我想知道如何提供錯誤/例外,如提供的用戶名或密碼等gmail信息是錯誤的。

現在,當我提供了錯誤的密碼,它正在我下面的消息,出錯畫面:

Swift_TransportException in AbstractSmtpTransport.php line 383: Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/answer/14257 f191sm3044706pfa.26 - gsmtp" 

我已經嘗試添加在app \例外一些代碼\ handler.php如下

public function render($request, Exception $e) 
{ 
    //This is my code 
    if ($e instanceof Swift_RfcComplianceException){ 
     return redirect($request->fullUrl())->with('error',"We have issue sending you an email"); 
    } 
    return parent::render($request, $e); 
} 
在.ENV文件

我的SMTP細節是:(做工精細)

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.gmail.com 
MAIL_PORT=587 
[email protected] 
MAIL_NAME=Arun Singh 
[email protected] 
MAIL_PASSWORD=mypassword 

代碼snipp等待發送郵件:(工作正常)

Mail::queue('/emails/test', array('firstname'=>'arun'), function($message){ 
    $to_email = '[email protected]'; 
    $to_firstname = 'Sanju'; 
    $to_lastname = 'Singh'; 
    $message->to($to_email, $to_firstname.' '.$to_lastname)->subject('Welcome to the XYZ!'); 
}) 

謝謝你的幫助。

+1

如果你想處理'Swift_TransportException',你應該檢查'if ($ e instanceof Swift_TransportException)'在你的自定義異常渲染器 – henrik

+0

謝謝你的工作。你能告訴我如何讀取例外信息以顯示給最終用戶。 –

+1

是的,您可以通過Exception對象的getMessage函數來訪問異常消息:'$ e-> getMessage()' – henrik

回答

2

在你的錯誤處理程序,您試圖捕獲異常是

Swift_RfcComplianceException 

但是,被拋出的異常是

Swift_TransportException 

搭上運輸例外,只是添加到您的錯誤處理程序:

if ($e instanceof \Swift_TransportException){ 
    return redirect($request->fullUrl())->with('error',"We have issue sending you an email"); 
} 
+0

謝謝你的工作。你能告訴我如何讀取例外信息以顯示給最終用戶。 –

+0

真棒,如果你想使用異常給你的消息,你可以做這樣的事情: '返回重定向($ request-> fullUrl()) - > with('error',$ e-> getMessage ());' – Ryukish

+0

謝謝你的回覆。 你能告訴我如何在mail函數中訪問'$ to_email','$ to_firstname'和'$ to_lastname'變量。 對於以下代碼,變量未被識別,並且引發錯誤。 '$ to_email ='to_email @ gmail。com公司; $ to_firstname ='Arun'; $ to_lastname ='Singh'; Mail :: queue('/ emails/test',array('firstname'=>'arun'),function($ message){$ message_> to($ to_email,$ to_firstname。'。$ to_lastname ) - > subject('Welcome'。$ to_firstname。'to XYZ!'); }); ' 我從db中獲取這些變量 –

相關問題