在Laravel中发送电子邮件时,错误提示Mail类未找到


Error saying Mail class not found when sending email in Laravel

当我尝试调用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');
            });       
        }
    }
}

由于代码位于名称空间下,因此必须导入Mail facade(我猜您只是忘记了这一点):

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');
});     

您忘记包含邮件类了。

添加
use Mail;

我不知道为什么没有人回答这个问题,但我肯定他们只是忘记了:

'Mail::send();

注意"Mail"前的"'"。