Я пытаюсь отправить электронное письмо всем пользователям, которые есть в моем файле JSON. Мой вопрос в том, как заставить это работать, чтобы когда я нажимаю отправить, это происходило? СПАСИБО!!! Код:
<?php
$sData = file_get_contents('data/clients.json');
$jData = json_decode($sData);
if ($jData == null) {
echo 'System update';
}
$sEmailsOfAllUsers = $jData->data->$sUserName->email;
$sMessage = $_POST['txtEmailToAllUsers'];
foreach ($jData->data as $sUserName) {
$from = "PETRABANK";
$to = $sEmailsOfAllUsers;
$subject = "Email to all users";
$headers = "From:" . $from;
mail($to, $subject, $sMessage, $headers);
echo "The email message was sent to all users.";
}
?>
Данные файла JSON/clients.json
{
"data": {
"username": {
"email": "[email protected]",
}
}
}
HTML-форма
<h3>Send email to all users</h3>
<form id = "sEmailToAllUsers" action = "????" method = "POST">
<input name = "txtEmailToAllUsers" id = "txtEmailToAllUsers" type = "text">
<button>SEND</button>
</form>
На первый взгляд код кажется законным (за исключением эха, которое должно быть вне цикла foreach и файла json), какие у вас проблемы? Вы настроили почтовый сервер из конфига?
{ "data": { "username1": { "email": "[email protected]", "lastName": "jjjj" } "username1": { "email": "[email protected]", "lastname": "[email protected] } } }@ka_lin Я не знаю, как заставить это работать, поэтому после того, как я нажму «ОТПРАВИТЬ», это действие произойдет. :/ БЛАГОДАРНОСТЬ!
@JonStirling Я добавил это :-)
Что вы пробовали? Где ты застрял? Если вы уже преобразовали этот JSON в массив, что удерживает вас от использования этих данных?
@NicoHaase Я не знаю, какое действие должна иметь форма и как заставить ее работать, поэтому после того, как я нажму кнопку ОТПРАВИТЬ, это действительно произойдет.
Почему бы не использовать сценарий, который фактически отправляет почту?






Вы должны использовать электронную почту в цикле foreach, чтобы отправить почту всем клиентам за один раз, или вам нужно получить всю электронную почту в другом цикле и объединить их с помощью запятой ","
<?php
$sData = file_get_contents('data/clients.json');
$jData = json_decode($sData);
if ($jData == null) {
echo 'System update';
}
$sMessage = $_POST['txtEmailToAllUsers'];
foreach ($jData->data as $sUserName) {
$from = "PETRABANK";
$to = $sUserName->username->email;
$subject = "Email to all users";
$headers = "From:" . $from;
mail($to, $subject, $sMessage, $headers);
echo "The email message was sent to all users.";
}
?>
Этот код поможет вам в отправке почты всем клиентам по одному.
@PetraJakub Я рад помочь. Помните, что в Stack Overflow принято голосовать за ответы, которые помогают, и использовать зеленую галочку для обозначения принятого ответа.
Под «действием» в форме вы должны ссылаться на файл, который будет обрабатывать данные, поэтому в этом случае я предполагаю, что вы должны просто ссылаться на файл, в котором вы находитесь:
<form id = "sEmailToAllUsers" action = "/yourfile.php" method = "POST">
Убедитесь, что вы не поместили файл json. Я сам новичок :D Но я надеюсь, что это поможет!
Как выглядит JSON, когда у него несколько адресов электронной почты?