当我尝试调用Laravel的Mail:send方法时出现此错误。
{"errors":[{"message":"Internal Server Error",
"debug":{"code":1,"message":"Class 'MyMail\\Mail' not found",..
app / config / mail.php中的所有设置均已验证有效。
namespace MyMail;
class GetMyMail extends Controller
{
public function __construct()
{
parent::__construct();
}
public function sendMail()
{
//$json_data is data stored in json
$users = json_decode($json_data, true);
foreach($users as $user)
{
Mail::send('template1', $user, function($message) use ($user)
{
$message->to($user['email'], $user['first_name'])
->subject('Laravel Email Test');
});
}
}
}
答案 0 :(得分:4)
由于您的代码位于命名空间下,您必须导入Mail外观(我猜你只是忘记了这一点):
namespace MyMail;
use Mail;
class GetMyMail extends Controller
{
// your code
}
或者,如果您愿意,可以在前面添加反斜杠:
\Mail::send('template1', $user, function($message) use ($user)
{
$message->to($user['email'], $user['first_name'])->subject('Laravel Email Test');
});
答案 1 :(得分:0)
您忘记包含邮件类。
添加
use Mail;
在命名空间声明之后,应解决问题。
答案 2 :(得分:0)
我不知道为什么没有人回答这个问题,但我确信他们只是忘记了:
\Mail::send();
请注意“邮件”之前的“\”。适用于命名空间内的所有其他静态类使用。