我的系统需要向许多用户发送电子邮件,发送许多用户确实需要时间。我不希望用户等待那段时间。
_send_mail函数用于各种控制器文件。我们有什么方法可以在后台发送电子邮件吗?
答案 0 :(得分:2)
在这种情况下,您可以在发送邮件之前返回部分响应。因此,您将得到进一步处理的回复,您的电子邮件发送过程将在后台继续。
为此,创建一个会抛出像这样的分区响应的函数
function partialResponse()
{
$response=array();
ignore_user_abort(true);
ob_start();
echo json_encode($response);
header("Status: 200");
header($_SERVER["SERVER_PROTOCOL"] . " 200 Ok");
header("Content-Type: application/json");
header('Content-Length: '.ob_get_length());
ob_end_flush();
ob_flush();
flush();
}
并在发送电子邮件之前调用此函数
$this->partialResponse();
在此之后,无论你想做什么,即发送电子邮件