2016-05-26 7 views
1

Laravelでsmtpを使用してメールを送信している最中です。Laravel 5ユーザー名またはパスワードが間違っていると電子メールのエラーが発生する

私はGmailの詳細を設定していますが、すべて正常に動作しており、受信トレイにメールが届いています。

しかし、UsernameやPasswordなどのgmail情報が間違っているとエラー/例外を処理する方法を知りたいのですが。私は

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); 
} 
次のようにhandler.php \アプリケーション\例外ではいくつかのコードを追加しようとしている

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" 

私は間違ったパスワードを入力するとき

は今、メッセージを次のように画面がエラーに私を取っています.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

恐ろしいですが、例外があなたに与えているメッセージを使いたいのであれば、 'return redirect($ request-> fullUrl()) - > with( 'error'、$ e-> getMessage ()); ' – Ryukish

+0

返信いただきありがとうございます。 メール機能の '$ to_email'、' $ to_firstname'、 '$ to_lastname'変数にどうやってアクセスできるか教えてください。 次のコードの場合、変数は識別されず、エラーがスローされます。 '$ to_email = 'to_email @ gmail。com '; $ to_firstname = 'Arun'; $ to_lastname = 'Singh'; mail :: queue( '/ emails/test'、配列( 'firstname' => 'arun')、function($ message){ $ message-> to($ to_email、$ to_firstname。 ''。$ to_lastname ) - >件名( 'Welcome'。$ to_firstname。 'to XYZ!'); }); ' dbからこれらの変数を取得しています –

関連する問題