У меня странная проблема с crontab. Я правильно настроил crontab для запуска задания cron следующим образом:
[user@user ~]$ crontab -e
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=myemail@mydomain.co.uk
HOME=/
2 * * * * php usr/share/nginx/html/site/script.php
Сценарий запускается, я знаю это, потому что сценарий - это всего лишь базовый тест, который использует функцию mail (), чтобы я знал, что он запущен.
Но я не получаю письмо от crontab, чтобы сообщить мне, что скрипт запущен. Я должен получать выходное электронное письмо на указанный выше адрес MAILTO, но это не так. Я даже пробовал использовать кавычки вокруг адреса.
В Sendmail нет ничего плохого, потому что в противном случае скрипт не смог бы отправлять электронную почту. В адресе электронной почты нет ничего плохого, потому что код mail () в script.php отправляется на тот же адрес электронной почты.
Технически я мог бы просто отправить вывод электронной почты таким способом, а не полагаться на crontab, но я знаю, что это неправильный способ.
Есть идеи, где я ошибаюсь?
PS. Это сервер Centos 6.3.
Что вы можете сделать, так это удалить этот MAILTO, а затем просто использовать корневой сервер пересылки.
/root/.forward
<- просто поместите туда свой адрес электронной почты, больше ничего. Предполагая, что вы выполняете задание cron от имени пользователя root. Вы также можете сделать это через /etc/aliases
добавьте строку: user: my@email.com
Я бы проверил журнал cron и почты, чтобы узнать, есть ли сообщения об ошибках. Может ли это быть также возможным, что электронное письмо попало в папку нежелательной почты или почтовый сервер получателя отклонил письмо из-за недопустимого имени отправителя или имени хоста и т. Д.?