Cron Job PHP Foreach отправляет только одну электронную почту / запускает одну строку

0

Я пытаюсь запустить задание 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 и отправляет ОДИН электронный адрес, когда он должен вытягивать несколько строк и отправлять несколько писем.

Я не знаю, почему это происходит. Я попытался найти причину, почему это происходит без везения.

У кого-нибудь есть идеи?

Теги:
cron

1 ответ

0
Лучший ответ

Функция get_campaigns() в скрипте использовала супергалактики $ _POST - не может делать это с помощью заданий cron. Удалены супергруды $ _POST, а скрипт cron выполнен безупречно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню