use*_*104 12 php email laravel
美好的一天,
我发送的电子邮件类似于:Laravel 5:发送电子邮件.我是这样做的:
$mail_status = Mail::send( 'emails.followup', $data, function( $message ) use ($data) {
$message->to( $data['email'] )
->from( $data['email_from'], $data['email_name'] )
->subject( $data['subject'] );
});
if($mail_status) {
$ret_status = 'sent';
}
else
$ret_status = 'sent_failed';
Run Code Online (Sandbox Code Playgroud)
现在,如果$ret_status是'sent_failed',我想知道发生了什么.我该怎么做?如何从邮件服务器查看邮件?
这是我的.env档案:
MAIL_DRIVER=smtp
MAIL_HOST=mail.mydomain.com
MAIL_PORT=465
MAIL_USERNAME=noreply@mydomain.com
MAIL_PASSWORD=thepassword
MAIL_ENCRYPTION=ssl
Run Code Online (Sandbox Code Playgroud)
更新:
看起来上面的方法是Laravel 4.如果您知道如何使用Laravel 5+获取错误代码,我可以将其视为正确的答案.
您可以使用try catch,也可以在$email, $email_from, $email_name, $subject不进入函数范围的情况下将其误认为是.
try{
$mail_status = Mail::send( 'emails.followup', $data, function( $message ) use ($data, $email, $email_from, $email_name, $subject) {
$message->to( $email )
->from( $email_from, $email_name )
->subject( $subject );
});
//If error from Mail::send
if($mail_status->failures() > 0){
//Fail for which email address...
foreach(Mail::failures as $address) {
print $address . ', ';
}
exit;
}
}
catch(\Exception $e){
// Get error here
print $e->getMessage();
exit;
}
Run Code Online (Sandbox Code Playgroud)
添加了电子邮件地址的故障打印,以检查电子邮件失败的地址.
Mail::failures()之后立即检查Mail::send()将返回您尝试向其发送电子邮件的失败电子邮件地址数组.
但是,据我所知,使用Mail facade失败时无法获得确切的错误.为此,您需要在您的上面设置debug true .env并检查Laravel日志.
| 归档时间: |
|
| 查看次数: |
1825 次 |
| 最近记录: |