Я недавно приобрел тарифный план 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 работает.