База знаний Диагностика проблем Не отправляются письма через cron или командную строку

Не отправляются письма через cron или командную строку

Если Вы пытаетесь отправить письма с помощью php-скрипта, использующего функцию mail() через командную строку, либо через cron-задание, но при этом Ваше сообщение не доходит до получателя, либо попадает в папку “Спам”, то возможно, что у Ваших писем указывается неверный отправитель. Такое может происходит из-за особенностей работы sendmail.

Для того, чтобы подставить корректного отправителя письма, воспользуемся дополнительным ключом к команде выполнения php-скрипта.
Допустим, Ваша команда для выполнения скрипта, содержащего функцию mail(), выглядит следующим образом:

php /var/www/username/data/www/site.ru/cron.php

Для того, чтобы подставить корректного отправителя письма, добавим в команду, после php:

-d "sendmail_path = /usr/sbin/sendmail -t -i -f [email protected]"

где вместо [email protected] необходимо указать почтовый ящик Вашего домена, с которого Вы хотите, чтобы шла отправка почты.

Пример получившейся команды:

php -d "sendmail_path = /usr/sbin/sendmail -t -i -f [email protected]" /var/www/username/data/www/site.ru/cron.php

Если проблема с отправкой почтовых писем сохраняется, то возможно проблема была не только в этом. Для полной диагностики возникающей проблемы, Вы можете всегда обратиться в нашу техническую поддержку.