В настоящее время я могу отправлять электронные письма каждому пользователю в базе данных с определенным идентификатором, но для запуска функции требуется некоторое время, и поэтому заставляет браузер ждать, пока она не завершится.
Is есть способ запустить функцию отправки электронной почты где-то еще и переместить страницу, чтобы пользователю не приходилось ждать.
Это проблема, потому что, если есть много пользователей, чтобы отправлять электронную почту тоже , тогда этот процесс может занять слишком много времени и пользователь будет ждать так же долго.
Мой текущий код выглядит следующим образом.
{
$sql_query = "SELECT * FROM `influencers` WHERE `brand_id` = $brand_id";
$i = 0;
$queryResult = mysqli_query($conn, $sql_query);
while($i<mysqli_num_rows($queryResult) ) {
$inf_info = mysqli_fetch_assoc($queryResult);
$brand = mysqli_fetch_assoc(mysqli_query($conn, "SELECT * FROM `brands` WHERE `id` = '$brand_id'"));
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Username = 'PLACEHOLDEREMAIL@gmail.com';
$mail->Password = 'PLACEHOLDERPASSWORD';
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
$mail->SetFrom(EMAIL_USERNAME, "Support");
$mail->addAddress($inf_info['email'], $inf_info['first_name'] . " " . $inf_info['last_name']);
$mail->Subject = "Your insider brand has started an internal campaign!";
$mail->isHTML();
$mail->Body = "
Greetings influencer! We want to let you know that that your insider brand, " . $brand['name'] . ",<br><br>
Has started a new insider campaign.<br><br>
If you wish to not participate, simply ignore this email.<br><br>
Sincerely,<br><br>
The Crowdfluence Team
";
// Check if email was sent successfully
if ($mail->send()){
unset($mail);
}else{
unset($mail);
}
$i +=1;
}
}