Использование foreach l oop для сбора данных и отправки электронного письма через задание cron - PullRequest
0 голосов
/ 06 августа 2020

У меня есть файл php, в котором для отправки электронной почты используется php mail. У меня есть foreach l oop, настроенный для извлечения данных из таблицы и отправки электронной почты для каждой строки. Я могу написать электронное письмо, а затем повторить его, чтобы убедиться, что оно выглядит правильно и получает правильные данные. Проблема, с которой я столкнулся, заключается в том, что когда я создаю задание cron (в cpanel), оно отправляет обратно внутреннюю ошибку сервера 500. Если я уберу все подключения к базе данных из файла, тогда он будет работать правильно, поэтому я знаю, что задание cron настроено правильно.

Это мой php файл:

<?php
include('config/route.php');

$agent = "SELECT * FROM the_agent WHERE status = 1";
$agentInfo = $obj->queryResult($agent);

        foreach($agentInfo as $value){
        $to      = 'my email';
        $subject = 'Your Match Request';
        $message = "<p>Hey ".$value['name']."!</p>
                    <p>Here is your weekly report.</p>
                    <p>You had ____ full job description/profile views from the following travelers: </p>
                    <p>(List of Travelers first names and disciplines)</p>
                    <p>And ____ applications from: </p>
                    <p>(List of travelers full names and disciplines)</p>
                    <p>This weeks matches include: </p>
                    <p>(List of matches)</p>
                    <p>I hope you had a great week! Don't forget to follow up with your applicants today if you haven't done so already.</p>
                    <p>Have an awesome weekend!</p>
                    ";
                
        $headers = array(
                    'From: email',
                    'Content-type: text/html; charset=iso-8859-1'
                    );
    

    
        mail($to, $subject, $message,implode("\r\n",$headers));

        }



?>

Есть ли что-то я упускаю / делаю неправильно в моем файле php? Есть ли что-то, о чем я не знаю, о заданиях cron и подключениях к базе данных? Я впервые занимаюсь cron-задачами, поэтому я буду очень благодарен за любой вклад или совет. Спасибо за ваше время.

1 Ответ

0 голосов
/ 06 августа 2020

Возможно, ваш код использует переменную среды для настройки соединения с базой данных, которое недоступно в заданиях cron.

$ export

отображает текущие переменные среды

Трудно сказать наверняка, что нужно, не зная своей базы данных, но вы должны иметь возможность сделать что-то вроде этого в верхней части файла cron для заполнения переменной среды:

ORACLE_SID = testdb 0 7 * * * php почтовый скрипт. php

...