Php Laravel:加载一个页面,然后发送一封邮件

Php Laravel:加载一个页面,然后发送一封邮件,php,email,laravel,Php,Email,Laravel,我正在尝试先加载页面,然后激活$mailer以发送电子邮件。因为当我点击进入下一页时,它需要时间,因为它发送电子邮件,然后加载 最好的方法是什么。无论如何。因为我想不出来 这是一个片段 public function sInterest($project_id, AppMailer $mailer) { $project = Project::findOrFail($project_id); if($project->investment){ $maile

我正在尝试先加载页面,然后激活$mailer以发送电子邮件。因为当我点击进入下一页时,它需要时间,因为它发送电子邮件,然后加载

最好的方法是什么。无论如何。因为我想不出来

这是一个片段

public function sInterest($project_id, AppMailer $mailer)
{

    $project = Project::findOrFail($project_id);
    if($project->investment){
        $mailer->sendInterestNotificationI($user, $project);
        $mailer->sendInterestNotificationD($project, $user);
        $mailer->sendInterestNotificationA($project, $user);
        return view('projects.offer', compact('project'));
    } 
}

是否有一种方法可以在返回页面后激活$mailer?

在AppMailer sendInterestNotification*()方法中,将同步电子邮件传递替换为排队电子邮件传递(请参见Laravel文档中的)

然后页面将立即返回,电子邮件将放入相应的队列中。您必须编辑.env文件才能更改队列驱动程序,并作为一个单独的进程启动队列侦听器,这在Laravel网站上给出


您无法将页面返回到浏览器,然后在控制器中运行一些额外命令。

在AppMailer sendInterestNotification*()方法中,将同步电子邮件传递替换为排队电子邮件传递(请参阅Laravel文档中的)

然后页面将立即返回,电子邮件将放入相应的队列中。您必须编辑.env文件才能更改队列驱动程序,并作为一个单独的进程启动队列侦听器,这在Laravel网站上给出


无法将页面返回到浏览器,然后在控制器中运行一些额外命令。

最佳方法是将邮件发送到队列并处理队列。最佳方法是将邮件发送到队列并处理队列。