Laravel 5.2电子邮件没有发送出去

时间:2016-06-06 15:23:53

标签: laravel email registration

尝试在网站上注册后发送激活邮件(使用Auth Controller)。

以下是控制器的代码:

protected function create(array $data)
{
    $data['activation_code'] = str_random(20);

    return User::create([
        'firstname' => $data['firstname'],
        'lastname' => $data['lastname'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
        'activation_code' => $data['activation_code'],
    ]);

    Mail::send('emails.register', $data, function($message) use ($data)
    {
        $message->from('info@foodtruckbestellen.be', "Foodtruckbestellen.be");
        $message->subject("Welkom bij foodtruckbestellen.be");
        $message->to($data['email']);
    });
}

这是电子邮件视图的代码:

<h1>Hi {{ $data['firstname'] }}</h1>
<p>
    Link = <a href="http://192.168.33.10/register/activate?code={{ $data['verification_code'] }}'">CLICK ME</a>
</p>

.env 的一部分:

MAIL_DRIVER=mail
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

用户在没有任何问题的情况下保存在数据库中,但我的电子邮件没有发送出去。我没有收到任何错误,所以我不确定发生了什么。

1 个答案:

答案 0 :(得分:2)

您需要设置.env文件。只需在mailtrap注册,然后将用户名和密码从mailtrap复制/粘贴到.env文件中。

编辑:

        Mail::send('email.register', ['data' => $data], function ($message) use ($data) {
        $message->from('info@foodtruckbestellen.be', 'Foodtruckbestellen.be');
        $message->to($data['email']);
        $message->subject('Welkom bij foodtruckbestellen.be);
    });

试试这段代码。我认为你必须使用use并且$data必须在数组内部。希望这有用。