Назад | Перейти на главную страницу

PHP mail () не работает с Postfix в Ubuntu

Я недавно приобрел тарифный план VPS. Я установил Ubuntu 9.10, PHP5 и Postfix. Я не могу заставить работать PHP mail (). В моем PHP-скрипте функция mail () возвращает true, что говорит о том, что она работает. Но никто не получает электронные письма от моего сайта.

Установка постфикса прошла нормально, когда я вызвал sudo apt-get install postfix. Вызов запуска /etc/init.d/postfix дал мне «Стартовый постфикс почтового транспортного агента Postfix». Вызов перезагрузки /etc/init.d/postfix дал мне ошибку «фатальная: почтовая система Postfix не работает».

До установки postfix я использовал sendmail, который работал с функцией PHP mail ().

Как отладить и исправить эту проблему?

Дополнительные замечания Я заглянул в /var/log/mail.log и обнаружил следующую ошибку каждый раз, когда я вызываю php mail ()

Feb  3 11:27:41 mywebsitedomain postfix/postdrop[23793]: warning: unable to look up public/pickup: No such file or directory

О, я решил проблему, следуя информации на этом форуме:

http://ubuntuforums.org/showthread.php?t=666018

По сути, я просмотрел свой файл ошибок /var/log/mail.log и обнаружил сообщение об ошибке «невозможно найти общедоступный / pickup: нет такого файла или каталога».

Затем я дал команду

sudo mkfifo /var/spool/postfix/public/pickup

Я убедился, что sendmail все еще не работает, выполнив ps -aux и убив его

root@cpu:/var/log# ps aux | grep mail
root      2363  0.0  0.5   9228  1888 ?        Ss   Jan28   0:20 sendmail: MTA: accepting connections          
root     23914  0.0  0.2   3040   792 pts/0    S+   11:33   0:00 grep mail
root@cpu:/var/log# kill 2363

Я перезапустил postfix

sudo /etc/init.d/postfix restart

И теперь почтовая функция PHP работает.