Laravel 5.3 - 发送欢迎电子邮件

时间:2016-12-13 09:45:52

标签: php laravel laravel-5.3

我是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']),
    ]);

}

它不起作用,注册新用户后我没有收到电子邮件。关于发送电子邮件的代码运行良好。

2 个答案:

答案 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/