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

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

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

  • На пошту буде відправлятися тільки те, що виводить виконувана команда.
  • При використанні утиліт 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. Рекомендується попередньо запустити команду вручну, підключившись по SSH, щоб переконатися, що вона працює саме так, як задумано.
Спосіб дозволяє уникнути створення додаткових файлів.
  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 політики для домену, скринька якого була вказана в команді в якості відправника.
Зміст