php - larave5.3邮件问题
本文介绍了php - larave5.3邮件问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
<?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,打印‘发送邮件失败,请重试’请问这是为什么?我百分之百肯定每次都成功。
解决方案
没有返回值的;我分别给简化成函数和方法便于理解;亲测可用;
/**
* 发送邮件函数
*
* @param $email 收件人邮箱 如果群发 则传入数组
* @param $name 收件人名称
* @param $subject 标题
* @param $data 邮件内容数组形式 邮件模板中需要用的的变量 示例:['name'=>'帅白','phone'=>'110']
* @param string $template 邮件模板
* @return array 发送状态
*/
function sendEmail($email, $name, $subject, $data, $template='emails.test')
{
Mail::send($template, $data, function($message) use($email, $name, $subject) {
//如果是数组;则群发邮件
if (is_array($email)) {
foreach ($email as $k => $v) {
$message->to($v, $name)->subject($subject);
}
}else{
$message->to($email, $name)->subject($subject);
}
});
if (count(Mail::failures()) > 0) {
$data=array(
'status_code'=>500,
'message'=>'邮件发送失败'
);
}else{
$data=array(
'status_code'=>200,
'message'=>'邮件发送成功'
);
}
return $data;
}
/**
* 发送邮件方法
*/
public function sendEmail()
{
$email = '收件人邮箱';
$name = '收件人名称';
$subject = '标题';
$data = ['邮件内容数组形式'];
$template = '邮件模板';
Mail::send($template, $data, function($message) use($email, $name, $subject) {
//如果是数组;则群发邮件
if (is_array($email)) {
foreach ($email as $k => $v) {
$message->to($v, $name)->subject($subject);
}
}else{
$message->to($email, $name)->subject($subject);
}
});
if (count(Mail::failures()) > 0) {
$data=array(
'status_code'=>500,
'message'=>'邮件发送失败'
);
}else{
$data=array(
'status_code'=>200,
'message'=>'邮件发送成功'
);
}
return $data;
}
这篇关于php - larave5.3邮件问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文