Классическая проблема. Изначально письма сформированые mail() в скрипте PHP вообще не отправлялись, функция mail() возвращала false. Проблему я решил. Попутно разобрался с настройкой exim4 на Debian. Об этом и расскажу.

Проблема в php.ini

Первым делом полез в php.ini. Там нашел строки

Сделал очевидное дописал как в комменте в default

Перегрузил апач

Функция mail() перестала возвращать false, но письма не приходили. Причем на разные ящики.

Ставим exim4

В процессе гугления обнаружил, что многие решают проблему не уходящей почты установкой exim4. Чтож попробовал.

Но установка не получилась.

Exim4 не устанавливается

При попытке установки получил следующюю ошибку:

Гугление нашло такую проблему и решение:

Сначала

Потом

Ну и

Там в первом окошке выбираем верхнюю строчку, чтото типа “internet site …”, ну а дальше можно просто жать энтер, ну или поправить по усмотрению.

Теперь настраиваем php.ini на exim4 вместо sendmail

меняем в php.ini

на

Перегружаем апач, ну и собственно всё. Почта уходит, адресат получает.

31 октября 2012 |

2 Комментариев к “Не работает PHP mail()”

  1. Игрь 5 декабря, 2013

    Решил настроить почту на сервере (ubuntu). Выбор пал на Exim4 c отправкой через Gmail. Вроде бы настроил все, письма уходят как положено. Однако мой заголовок From (mail@domian.ru) Gmail перезаписывает на тот, с чьего аккаунта отправляется письмо на самом деле (name@gmail.com). Реально ли как то заставить Gmail отправлять от моего имени и домена?

  2. Леша 22 января, 2014

    ТОже не работает функция mail(); на ubuntu 12.04 купил его на хостинге одном так там 25 порт заблокирован(

Есть что сказать по теме статьи? Пожалуйста - пишите!