Дополнительная электронная почта от Cron Daemon при запуске сценария списка электронной почты

У меня есть PHP-скрипт, который отправляет подписчики на две недели. Каждый раз, когда он отправляет электронную почту, он также отправляет электронное письмо, которое приходит от «Cron Daemon». Когда я впервые написал сценарий, он не отправил это письмо, но теперь он это делает. У меня есть несколько вопросов об этом.

Это то, что говорится в электронном письме:

Set-Cookie: PHPSESSID=((random letters and numbers here)); path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-type: text/html 
  1. Что означает это сообщение?
  2. Почему это письмо отправляется?
  3. Есть ли способ остановить отправку этого письма?

Cron читает stdout / stderr команды, которая выполняется, если что-то написано, тогда cron отправляет E-Mail.

Я думаю, что php-исполняемый файл скомпилирован как «cgi» или «fcgi», поэтому он по умолчанию генерирует эти заголовки.

Чтобы решить эту проблему, у вас есть, по-видимому, три возможных решения:

  • Используйте версию «cli» PHP
  • Переназначить stderr и stdout в / dev / null (это означает, что append > /dev/null 2>&1 – ваша команда cron).
  • Определите MAILTO="" (см. Эту страницу ).

Я предполагаю, что ваш PHP-скрипт выводит что-то на выход. Если что-то получится вообще, cron перенаправляет его на электронную почту администратора по умолчанию.

Для этого есть два решения:

1) Исправьте свой скрипт PHP, чтобы ничего не выводить. Это иногда сложнее, чем казалось бы, особенно для нетривиальных скриптов.

2) Предотвращение появления сценария cron. Недостатком этого метода является то, что вы не получите уведомления, когда скрипт не работает. Чтобы остановить вывод, используйте что-то вроде этого:

 #Before * * * * * php /path/to/script #After * * * * * php /path/to/script > /dev/null 2>&1