Laravel 4 Mail功能无法正常工作

时间:2014-06-11 13:24:03

标签: laravel-4 cartalyst-sentry

我目前正在开发一个网络应用程序,要求用户在能够使用其帐户之前进行验证。 我使用Cartalyst的Sentry来注册用户,并使用内置的Mail函数发送电子邮件,但每当我注册时,我都会收到以下错误:

Argument 1 passed to Illuminate\Mail\Mailer::__construct() must be an instance of 
Illuminate\View\Environment, instance of Illuminate\View\Factory given, 
called in 
/var/www/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php 
on line 34 and defined 

我无法弄清楚是什么原因造成的。 在我的代码的顶部,我包括"使用Mail"否则我会得到另一个错误:

Class '\Services\Account\Mail' not found 

代码

// Create the user
$user = $this->sentry->register(array(
    'email'             => e($input['email']),
    'password'          => e($input['password'])
));

$activationCode = $user->getActivationCode();

$data = array(
    'activation_code'   => $activationCode,
    'email'             => e($input['email']),
    'company_name'      => e($input['partnerable_name'])
);

// Email the activation code to the user

Mail::send('emails.auth.activate', $data, function($message) use ($input)
{
    $message->to(e($input['email']), e($input['partnerable_name']))
    ->subject('Activate your account');
});

任何人都知道这个错误的解决方案是什么?

提前致谢,

基博

2 个答案:

答案 0 :(得分:1)

删除/bootstrap/compiled.php我认为它对你有用。

答案 1 :(得分:0)

您需要从Mail :: send调用中删除它。该函数应该是第三个参数,所以我不确定你在这里要做什么 - $ input ['email']字段已经在函数中可用,因为你的“use($ input)”< / p>

$email = e($input['email']