当用户名或密码错误时,Laravel 5电子邮件错误handeling

时间:2016-05-26 07:17:37

标签: php email laravel-5 smtp

我第一次使用Laravel中的smtp发送邮件。

我已经配置了我的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 \ Exceptions \ 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
MAIL_ADDRESS=myemail@gmail.com
MAIL_NAME=Arun Singh
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=mypassword

发送邮件的代码段:(正常工作)

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

在错误处理程序中,您尝试捕获的异常是

Swift_RfcComplianceException

但是抛出的异常是

Swift_TransportException

要捕获传输异常,只需将其添加到错误处理程序:

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

答案 1 :(得分:0)

在我的.env文件中

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME= angambameetei93@gmail.com
MAIL_PASSWORD= xxxxxxxxxxxxxx
MAIL_ENCRYPTION=tls

我得到了同样的错误,但很长一段时间后,我通过

https://myaccount.google.com/lesssecureapps

这里,安全性较低的应用程序访问权限必须为开

Allow less secure apps: ON

谢谢。