在Laravel中发送电子邮件时未找到邮件类的错误

时间:2014-08-22 06:05:09

标签: php email laravel-4

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

3 个答案:

答案 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();

请注意“邮件”之前的“\”。适用于命名空间内的所有其他静态类使用。