<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;
class MailController extends Controller
{
public function send()
{
$name = '隔壁老王';
$flag = Mail::send('emails.test',['name'=>$name],function($message){
$to = '13580584313@163.com';
$message ->to($to)->subject('成功啦');
});
if($flag){
echo '发送邮件成功,请查收!';
}else{
echo '发送邮件失败,请重试!';
}
}
}
这是我发邮件的控制器,路由和配置就不贴了,我的问题是:我邮件明明发送成功了,可是$flag每次都是null,打印‘发送邮件失败,请重试’请问这是为什么?我百分之百肯定每次都成功。
Illuminate\Contracts\Mail\Mailer
send
这个方法不返回的.具体实现可以看下
Illuminate\Mail\Mailer
的send
.我也是找不出检测发送的方法
哦,
Illuminate\Mail\Mailer
有个failure
方法, 你可以试试send
没有返回值,所以你的$flag总是null
。可以用
failures
检查:没有返回值的;我分别给简化成函数和方法便于理解;亲测可用;