[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Cron и mail
Гость_Денис
Здравствуйте, помогите решить проблему, написал вот такой код
<?php
include("db.php");
$data=date("Y,m,j");
$query = mysql_query("SELECT email FROM OB where data='$data'");
while ($array = mysql_fetch_array($query)){
$adr=$array['email'];
$subject="тема";
$body="текст";
$headerss .= "Content-Type: text/html; charset='windows-1251'";
mail($adr,$subject,$body,$headers);
}
?>
он работает с адресной сроки браузера, но не хочет работать с крона.
права на файл прописал 777
команда в кроне @daily /usr/bin/php /var/www/bproblem.ru/data/www/b-problem.ru/updata.php >/dev/null 2>&1
cron в ИСП панели



Спустя 33 минуты, 51 секунда (7.01.2012 - 12:52) inpost написал(а):
Гость_Денис
Скорее всего проблема в пути к db.php. Можешь попробовать относительный путь указать при помощи константы __DIR__ , или содержания файла db.php прям сюда перенести.

Спустя 2 часа, 25 минут, 44 секунды (7.01.2012 - 15:17) Guest написал(а):
проблема не в пути файла... у меня есть ещё один файл который выполняется cron ом, и так же прописан include("db.php"); он работает, а этот не хочет. пробовал как Вы говорили прописать вместо include("db.php"); содержание файла тоже не работает.

Спустя 2 часа, 35 минут, 50 секунд (7.01.2012 - 17:53) inpost написал(а):
Лично мне не нравится, как оформлен mail(), странно, что он вообще работает. Вот ссылка нормальная: http://irbis-team.com/15/12/1
Кодировка не прописана самого файла, что тоже плохо. Вот про кодировку: http://phpforum.ru/index.php?showtopic=27289
Для начала проверь, есть ли соединения с БД, поэтому вместо SELECT, сделай какой-нибудь простой INSERT, и по крону убедись, что в БД идёт запись, то есть крон запускает этот файл(!).
Попробуй простой mail() отправить по таким правилам: английский текст, английский заголовок, отправитель: noreply@site.ru, где site.ru <- твой сайт. Отправлять письмо на ящик в gmail, проверять письмо в разделе "входящие" и "спам". Если НИГДЕ не будет письма, но при этом запись в БД в этом же файле через INSERT отработает, то тогда пиши, ещё что-нибудь придумаем. Пока стандартную процедуру, а потом будем уже костыли искать. Главное выполни ВСЁ, что я написал.

Спустя 1 час, 8 минут, 55 секунд (7.01.2012 - 19:02) Guest написал(а):
проблему решил может кому то и пригодиться в кроне вместо /usr/bin/php /var/www/bproblem.ru/data/www/b-problem.ru/updata.php >/dev/null 2>&1

прописать команду /usr/bin/wget -O /dev/null http://b-problem.ru/post.php

код переписал но суть та же...
<?php
include("db.php");
$data=date("Y,m,j");
$query = mysql_query("SELECT email FROM table where data='$data'");
while ($array = mysql_fetch_array($query)){
$adr=$array['email'];
$subject="тема";
$body="текст";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "Content-Type: text/plain; charset=\"Windows-1251\"\r\n";
$headers .= "X-Mailer: PHP v.".phpversion()."\r\n";
$headers .= "From: mail@mail.ru\r\n";
mail($adr,$subject,$body,$headers);
}
?>

всем спасибо

Спустя 3 минуты, 54 секунды (7.01.2012 - 19:06) Guest написал(а):
Забыл имена файлов post и updata не имеют значения... главное что б суть была понятна

Спустя 35 секунд (7.01.2012 - 19:07) killer8080 написал(а):
Цитата (Guest @ 7.01.2012 - 18:02)
проблему решил

проблему ты не решил, ты её обошел ;)
ЗЫ можно было еще попробовать в начале прописать рабочий каталог в явном виде
chdir(dirname( __FILE__ ));
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.