Laravel向新注册用户发送电子邮件

时间:2020-09-22 09:24:09

标签: laravel email laravel-7

我正在尝试向新用户发送电子邮件。我对环境进行了更改。文件。我正在使用gmail.com邮件服务。我想向用户发送电子邮件,包括他们的姓名。例如: 约翰,您好,您的注册成功了! 约翰部分将是用户名。

我的代码在RegistrationController中:

protected function create(array $data)
    {
        $user = User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);

        $to_name = $data['name'];
        $to_email= $data['email'];

        $body =[];
        $mailData=array('body'=>$body);

        Mail::send('email.email-register', $mailData, function($message) use ($to_name, $to_email ){
            $message->to($to_email, $to_name)->subject('Registration is succesfull!');
            $message->from(env('MAIL_USERNAME'));
        });
        return $user;

    }

我也正在使用邮件模板。我想将用户作为变量发送到视图。我该怎么办?

1 个答案:

答案 0 :(得分:1)

1-您需要运行命令php artisan make:mail RegisterMail

2-添加库使用App\Mail\RegisterMail; Mail :: to('YourEmail@gmail.com')->发送(new RegisterMail($ mailData));

3-在您的App\Mail\RegisterMail.php类中创建一个新的数据成员 公共$ mailData; 公共功能__construct($ mailData) { $ this-> mailData = $ mailData; }

4-将此添加到您的App\Mail\RegisterMail.php中 公共功能build(){ 返回$ this-> from('youremail@gmail.com','您的名字')-> replyTo('youremail@gmail.com')->主题($ this-> mailData ['subject'])-> view ('email')-> with('mailData',$ this-> mailData); }