В наши дни функция mail () в php работает странно.
<?php
mail("email@mail.com", "Subject", "Content");
?>
Вышеупомянутый сценарий работает, если я использую в командной строке "php script.php". Однако, если я сделаю ссылку на страницу (http://domain.com/script.php) браузером, почта не будет отправлена, даже если функция mail вернет true.
Я погуглил об этом и нашел решение. Он говорит: «Измените файл php.ini следующим образом».
+ Изменить
sendmail_path = "/ usr / sbin / sendmail -t -i"
к
sendmail_path = "/ usr / sbin / sendmail -t"
И у меня это работает прямо сейчас. Кто-нибудь знает, почему удаление параметра -i может решить проблему? он отлично сочетается с -i в последние несколько месяцев !!
Из страница руководства sendmail:
-i Игнорировать только точки в строках входящих сообщений. Это должно быть установлено, если вы читаете данные из файла.
Таким образом, это может зависеть от того, как форматируется контент, или от того, как mail () внутренне решает прочитать содержимое, а затем передать его в sendmail (были ли предыдущие версии mail () записывали строку содержимого во временный файл, а затем вызывали sendmail?) .