我是laravel 5.3的新手,我使用以下方式创建了系统用户:
php artisan make:auth
但是现在我想在注册后发送电子邮件,在我的AuthController中我试试这样:
protected function create(array $data)
{
$body = view('email/welcome');
$mail = new Message;
$mail->setFrom('mywebsite.it <info@mywebsite.it>')
->addTo($data['email'])
->setSubject('Welcome');
$mail->setHTMLBody($body);
$mailer = new SmtpMailer([
'host' => 'smtp.gmail.com',
'username' => 'myemail@gmail.com',
'password' => 'xxxxxx',
'secure' => 'ssl',
'port' => '465',
]);
$mailer->send($mail);
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
它不起作用,注册新用户后我没有收到电子邮件。关于发送电子邮件的代码运行良好。
答案 0 :(得分:0)
创建UserRegistered()
mailable并使用以下代码发送:
....
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
Mail::to($data['email'])->send(new UserRegistered());
return $user;
如果您使用的是Laravel 5.3,则可能需要use notifications。
答案 1 :(得分:0)
如果您希望在注册后发送欢迎电子邮件,则需要生成Mailable Class,并在我们在数据库中插入用户详细信息后立即使用Mail facacade向用户发送电子邮件。
请阅读本文以获取Laravel 5.5的详细教程
https://www.5balloons.info/send-email-on-registration-with-laravel-5-5-authentication/