2.12.1.2. Звіти не надходять одержувачу

Якщо листи зі звітами надсилаються звичайним чином, але не доходять до одержувача, спробуйте організувати власне надсилання звітів через SMTP або за допомогою sendmail, як описано нижче.

Важливі моменти:

  • На пошту буде надсилатися тільки те, що виводить виконувана команда.
  • Для утиліт wget і curl не використовуйте ключ -q, який подавляє виведення.
  1. Створіть файл з назвою report.php в кореневому каталозі хостинг-акаунта і помістіть в нього скрипт з інструкції, вказавши в ньому свої дані.
  2. У скрипті додатково замініть рядок:
    $text = "Привіт, перевірка зв'язку по SMTP."; // вміст листа, що відправляється

    На рядок:

    $text = shell_exec(addslashes($argv[1]) . " 2>&1");
  3. Додайте завдання cron і в якості завдання вкажіть наступну команду:
    /usr/local/bin/php -f /home/example/report.php "command"
    • Замість example вкажіть назву хостинг-акаунта.
    • Замість command вкажіть команду, за якою ви хочете отримувати звіти.
  4. Виконайте тестовий запуск завдання, щоб переконатися, що все працює так, як задумано.
При використанні sendmail можна обійтися без створення додаткових файлів.
  1. Додайте завдання 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 вкажіть поштову скриньку одержувача звіту.
  2. Настійно рекомендуємо налаштувати SPF та DMARC політики для домену поштової скриньки, яка використовується в якості відправника.
Зміст