2.12.1.2. Звіти не доходять одержувачу
Якщо листи зі звітами, відправлені звичайним чином, не доходять одержувачу, спробуйте організувати власну відправку звітів одним із способів, описаних нижче.
Важливі моменти:
- На пошту буде відправлятися тільки те, що виводить виконувана команда.
- При використанні утиліт
wget
таcurl
не слід використовувати ключ-q
, який подавляє виведення.
Відправка звіту за допомогою SMTP
- Створіть файл з ім’ям
report.php
в корені хостинг-акаунту і помістіть в нього скрипт з інструкції, вказавши в ньому свої дані. - В скрипті додатково замініть рядок:
$text = "Привіт, перевірка зв’язку з SMTP."; // вміст листа, що надсилається
На рядок:
$text = shell_exec(addslashes($argv[1]) . " 2>&1");
- Додайте завдання cron і в якості завдання вкажіть наступну команду:
/usr/local/bin/php -f /home/example/report.php "command"
- Замість
example
вкажіть назву хостинг-акаунту. - Замість
command
вкажіть команду, по якій ви хочете отримувати звіти.
- Рекомендується попередньо запустити команду вручну, підключившись по SSH, щоб переконатися, що вона працює саме так, як задумано.
Відправка звіту за допомогою sendmail
Спосіб дозволяє уникнути створення додаткових файлів.
- Додайте завдання cron і в якості завдання вкажіть наступну команду:
OUTPUT=$(command);echo -e "Subject:cron report\n${OUTPUT}" | sendmail -f "sender@example.com" -t "receiver@example.com"
- Замість
command
вкажіть команду, по якій ви хочете отримувати звіти. - Текст
cron script
це тема листа (можна замінити на свою). - Замість
sender@example.com
вкажіть будь-яку поштову скриньку домену, спрямованого на наш хостинг. - Замість
receiver@example.com
вкажіть поштову скриньку одержувача звіту.