尝试在网站上注册后发送激活邮件(使用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
用户在没有任何问题的情况下保存在数据库中,但我的电子邮件没有发送出去。我没有收到任何错误,所以我不确定发生了什么。
答案 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
必须在数组内部。希望这有用。