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 политики для домена почтового ящика, который используется в качестве отправителя.
Содержание