Laravel 注册控制器中未发送电子邮件

Laravel 注册控制器中未发送电子邮件,laravel,email,laravel-7,Laravel,Email,Laravel 7,我尝试在成功注册后发送电子邮件,但无法发送 这是寄存器控制器的代码 protected function create(array $data) { return User::create([ 'name' => $data['name'], 'city' => $data['city'], 'gender' => $data['gender'], 'pass

我尝试在成功注册后发送电子邮件,但无法发送

这是寄存器控制器的代码

protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'city' => $data['city'],
            'gender' => $data['gender'],
            'password' => Hash::make($data['password']),
            'parentname' => $data['parentname'],
            'relation' => $data['relation'],
            'phonenumber' => $data['phonenumber'],
            'email' => $data['email'],
            'address' => $data['address'],
            
        ]);

         $details=[
            'title' => 'title :Check Mail fucntion',
            'body'  => 'test purpose',
        ];

        Mail::to('example.kk49@gmail.com')->send(new WelcomeMail($details));
        return view('mail.thanks');

    }
如果我在中使用此邮件功能


然后它发送电子邮件

创建方法的第一行返回。这意味着该方法中不会执行任何其他内容。您需要将User::create的结果捕获到一个变量中,执行其余的操作,然后返回这些结果

protected function create(array $data)
{
    User::create([
        'name' => $data['name'],
        'city' => $data['city'],
        'gender' => $data['gender'],
        'password' => Hash::make($data['password']),
        'parentname' => $data['parentname'],
        'relation' => $data['relation'],
        'phonenumber' => $data['phonenumber'],
        'email' => $data['email'],
        'address' => $data['address'],
        
    ]);

     $details=[
        'title' => 'title :Check Mail fucntion',
        'body'  => 'test purpose',
    ];

    Mail::to('example.kk49@gmail.com')->send(new WelcomeMail($details));

    Mail::to('otheremail@gmail.com')->send(new AdminNewAccount($details));

    return view('mail.thanks');
}

编辑:我已经更新了它以显示第二封电子邮件的示例,还删除了重复的return语句。

create方法的第一行是return。这意味着该方法中不会执行任何其他内容。您需要将User::create的结果捕获到一个变量中,执行其余的操作,然后返回这些结果

protected function create(array $data)
{
    User::create([
        'name' => $data['name'],
        'city' => $data['city'],
        'gender' => $data['gender'],
        'password' => Hash::make($data['password']),
        'parentname' => $data['parentname'],
        'relation' => $data['relation'],
        'phonenumber' => $data['phonenumber'],
        'email' => $data['email'],
        'address' => $data['address'],
        
    ]);

     $details=[
        'title' => 'title :Check Mail fucntion',
        'body'  => 'test purpose',
    ];

    Mail::to('example.kk49@gmail.com')->send(new WelcomeMail($details));

    Mail::to('otheremail@gmail.com')->send(new AdminNewAccount($details));

    return view('mail.thanks');
}

编辑:我已经更新了这个,以显示第二封电子邮件的示例,还删除了重复的返回语句。

您需要清除配置以使用新配置。 在终端中运行以下命令

php artisan view:clear
php artisan route:clear
php artisan cache:clear
php artisan config:clear
php artisan config:cache

您需要清除配置以使用新配置。 在终端中运行以下命令

php artisan view:clear
php artisan route:clear
php artisan cache:clear
php artisan config:clear
php artisan config:cache

您可以通过Swift_TransportException捕获错误,如下所示:

try {
        Mail::to('example.kk49@gmail.com')->send(new WelcomeMail($details));
} catch(\Swift_TransportException $e) {
        $response = $e->getMessage(); // catch the error here
}

您可以通过Swift_TransportException捕获错误,如下所示:

try {
        Mail::to('example.kk49@gmail.com')->send(new WelcomeMail($details));
} catch(\Swift_TransportException $e) {
        $response = $e->getMessage(); // catch the error here
}

不知怎的,你的电子邮件还没有发送。您需要捕获错误我如何在此处检查错误?不知怎的,您的电子邮件尚未发送。您需要捕获错误我如何在此处检查错误?它会抛出一个错误,并且没有登录传递给Illuminate\Auth\SessionGuard::login的参数1必须实现i………..etcIt似乎已经通过注册,现在正在尝试登录用户。它发电子邮件了吗?我相信电子邮件错误已经修复,您将看到一个新的错误。完整的错误消息是什么?您是否对登录过程进行了任何修改?这可能是有意义的,使一个新的错误张贴。完成先生,我在这里使用返回视图'邮件。谢谢';这对我来说没有什么用处,但现在我将其删除,并将其转到仪表板。谢谢你的帮助,如果我想在这里发两封邮件?一个是给管理员的,那我怎么做呢?你可以循环浏览一个电子邮件列表,比如:foreach['example1@gmail.com', 'example2@gmail.com“]作为$recipient{Mail::torecipient->sendnew WelcomeMail$详细信息;返回查看'Mail.Thank';}我是从邮件文档中得出这一点的:它抛出了一个错误,并且没有登录到参数1中。参数1传递给Illuminate\Auth\SessionGuard::login必须实现I………..。etcIt似乎已经通过了注册,现在正试图让用户登录。它发电子邮件了吗?我相信电子邮件错误已经修复,您将看到一个新的错误。完整的错误消息是什么?您是否对登录过程进行了任何修改?这可能是有意义的,使一个新的错误张贴。完成先生,我在这里使用返回视图'邮件。谢谢';这对我来说没有什么用处,但现在我将其删除,并将其转到仪表板。谢谢你的帮助,如果我想在这里发两封邮件?一个是给管理员的,那我怎么做呢?你可以循环浏览一个电子邮件列表,比如:foreach['example1@gmail.com', 'example2@gmail.com“]作为$recipient{Mail::torecipient->sendnew WelcomeMail$details;return view'Mail.thanking';}我正从以下邮件文档中获取此信息: