使用变量中的电子邮件地址发送邮件

Send mail using the email address from a variable

我想发送邮件到一个可变的邮寄地址,我正在做的是:

$this->create($request->all());
//Send confirmation mail
$email = $request['email'];
Mail::send('auth.emails.welcome', ['token' => 'System'], function ($message)
{
    $message
            ->to(
                    $email,
                    'Laravel 5.2 App'
                )
            ->subject('Activate Your Account !');
});

但是我收到了这个错误:

详细代码为:

public function register(Request $request)
{
    $validator = $this->validator($request->all());

    if ($validator->fails()) {
        $this->throwValidationException(
            $request, $validator
        );
    }

    //Auth::login($this->create($request->all()));

    $this->create($request->all());
    //Send confirmation mail
    $email = $request['email'];
    Mail::send('auth.emails.welcome', ['token' => 'System'], function ($message)
    {
        $message
                ->to(
                        $email,
                        'Laravel 5.2 App'
                    )
                ->subject('Activate Your Account !');
    });

    return redirect($this->redirectPath());
}

有人可以帮忙吗?

您需要使用 use 构造将变量传递给闭包,因为闭包具有不同的作用域:

$this->create($request->all());

//Send confirmation mail
$email = $request['email'];

Mail::send('auth.emails.welcome', ['token' => 'System'], function ($message) use ($email) {
    $message->to($email,'Laravel 5.2 App')
            ->subject('Activate Your Account !');
});

您可以在 PHP: Anonymous functions 文档中阅读更多相关信息。