Я пытаюсь запустить задание cron, которое выполняет следующий код PHP:
<?php
require 'core/init.php';
$freq = "1day";
$camp = $users->get_campaigns($freq);
foreach($camp as $val) {
$data['customer'] = $val['thename'];
$data['companyname'] = $val['company'];
$data['email'] = $val['reply_to'];
if($val['defaultc'] == "1") {
$phrase = $val['1'];
}
elseif($val['defaultc'] == "2") {
$phrase = $val['2'];
}
elseif($val['defaultc'] == "3") {
$phrase = $val['3'];
}
$placeholders = array("{customer}", "{companyname}", "{email}");
$new_member_file = str_replace($placeholders, $data, $phrase);
$headers = "From: ".$val['reply_to']."\r\n";
$headers .= "Reply-To: ".$val['reply_to']."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = "<html><head><style type='text/css'>body { font-family: Arial, sans-serif; }</style></head><body>";
$message .= "".$new_member_file."</body></html>";
mail($val['theemail'], $val['sub1'], $message, $headers,'-f'.$val['reply_to'].'');
$users->email_sent($user_id);
}
?>
Если я получаю доступ к файлу напрямую через мой браузер, он работает отлично. Однако, если он запускается через задание cron, он будет выполнять только код foreach ONCE... означает, что он вытаскивает первую строку из базы данных MySQL и отправляет ОДИН электронный адрес, когда он должен вытягивать несколько строк и отправлять несколько писем.
Я не знаю, почему это происходит. Я попытался найти причину, почему это происходит без везения.
У кого-нибудь есть идеи?
Функция get_campaigns() в скрипте использовала супергалактики $ _POST - не может делать это с помощью заданий cron. Удалены супергруды $ _POST, а скрипт cron выполнен безупречно.