2.11.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
укажите почтовый ящик получателя отчёта.