Я пытаюсь отправить сообщение всем пользователям на моем сайте с группой из 5. Однако, как у меня есть эта электронная почта, структурированная, я получаю ответ на запрос if вернуться говоря, что адрес электронной почты не был заполнен.Получение адресов электронной почты через цикл while и отправку php электронной почты
Я пытаюсь добавить адрес электронной почты, через время цикла, как это ..
while ($stmt->fetch()) {
$to = $user_email;
}
Я посылаю тему и сообщение через мою форму с помощью AJAX. Я не получаю от этого никаких ошибок. Это часть меня отправляют обратно ко мне на мою страницу ..
else {
echo "Email Address was not filled out.";
}
Что я делаю не так, чтобы это сказать, адрес электронной почты не был заполнен в? Кроме того, если у меня есть адрес электронной почты более одного пользователя, будет ли он работать, или мне нужно будет структурировать $to
по-другому?
Вот полный код:
$subject = $_POST['subject'];
$message = $_POST['message'];
try {
$con = mysqli_connect("localhost", "", "", "");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$stmt = $con->prepare("SELECT id, email, username FROM users WHERE `group` IN (5)");
if (!$stmt || $con->error) {
// Check Errors for prepare
die('User/Player SELECT prepare() failed: ' . htmlspecialchars($con->error));
}
if(!$stmt->execute()) {
die('User/Player SELECT execute() failed: ' . htmlspecialchars($stmt->error));
}
$stmt->store_result();
} catch (Exception $e) {
die("User/Player SELECT execute() failed: " . $e->getMessage());
}
$stmt->bind_result($userid, $user_email, $username);
while ($stmt->fetch()) {
$to = $user_email;
}
$subject = 'Updated Status';
$message = '';
$from = "[email protected]";
$Bcc = "[email protected]";
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
//$headers .= 'To: ' .$to;//. "\r\n";
$headers .= 'From: ' .$from. "\r\n";
$headers .= 'Bcc: '.$Bcc. "\r\n";
// Send the email
//mail($to,$subject,$message,$headers);
//if(mail($to,$subject,$message,$headers)){
// echo "Success";
//} else {
// print_r(error_get_last());
// echo "Fail";
//}
if (!empty($email)) {
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
//Should also do a check on the mail function
if (mail($to, $subject, $message, $headers)) {
echo "Your email was sent!"; // success message
} else {
echo "Mail could not be sent!"; // failed message
}
} else {
//Invalid email
echo "Invalid Email, please provide a valid email address.";
}
} else {
echo "Email Address was not filled out.";
}
Откуда вы получаете значение '$ user_email'? – Maximus2012
Из моего bind_result '$ stmt-> bind_result ($ userid, $ user_email, $ username);' – Becky
Да, вы правы. Виноват. 'while ($ stmt-> fetch()) { $ to = $ user_email; } 'Я думаю, что это просто переопределит значение' $ to'. Возможно, вам нужно обернуть всю логику отправки почты в это время цикла. – Maximus2012