Классическая проблема. Изначально письма сформированые mail() в скрипте PHP вообще не отправлялись, функция mail() возвращала false. Проблему я решил. Попутно разобрался с настройкой exim4 на Debian. Об этом и расскажу.
Первым делом полез в php.ini. Там нашел строки
1 2 3 |
For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path sendmail_path = /usr/sbin/sendmail |
Сделал очевидное дописал как в комменте в default
1 |
sendmail_path = /usr/sbin/sendmail -t -i |
Перегрузил апач
1 |
apachectl restart |
Функция mail() перестала возвращать false, но письма не приходили. Причем на разные ящики.
В процессе гугления обнаружил, что многие решают проблему не уходящей почты установкой exim4. Чтож попробовал.
1 |
apt-get install exim4 |
Но установка не получилась.
При попытке установки получил следующюю ошибку:
1 |
E: Could not perform immediate configuration on 'exim4-daemon-light'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2) |
Гугление нашло такую проблему и решение:
Сначала
1 |
apt-get install exim4-base exim4-config |
Потом
1 |
apt-get install exim4-daemon-light |
Ну и
1 |
dpkg-reconfigure exim4-config |
Там в первом окошке выбираем верхнюю строчку, чтото типа “internet site …”, ну а дальше можно просто жать энтер, ну или поправить по усмотрению.
меняем в php.ini
1 |
sendmail_path = /usr/sbin/sendmail -t -i |
на
1 |
sendmail_path = /usr/sbin/exim4 -t |
Перегружаем апач, ну и собственно всё. Почта уходит, адресат получает.
31 октября 2012 |
Раздел: Сервера |
Метки: php, debian
Решил настроить почту на сервере (ubuntu). Выбор пал на Exim4 c отправкой через Gmail. Вроде бы настроил все, письма уходят как положено. Однако мой заголовок From (mail@domian.ru) Gmail перезаписывает на тот, с чьего аккаунта отправляется письмо на самом деле (name@gmail.com). Реально ли как то заставить Gmail отправлять от моего имени и домена?
ТОже не работает функция mail(); на ubuntu 12.04 купил его на хостинге одном так там 25 порт заблокирован(
Пост помог справиться с паникой и осознать, что с exim всё в порядке, а дурацкая панель управления почему-то переписала sendmail_path в php.ini Спасибо!