我第一次使用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!');
})
感谢您的帮助。
答案 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
谢谢。