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