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

не удается заставить php mail () работать в настольной версии Ubuntu с sendmail и postfix

Я запускаю Ubuntu 9.10 LAMP и пытаюсь выполнить простой тест электронной почты с помощью PHP, но мне не приходят электронные письма.

mail("myemail@gmail.com", "eric-linux test", "test") or die("can't send mail"); 

Я не получаю ошибок от PHP при запуске этого скрипта.

В моем файле php.ini:

sendmail_path = /usr/lib/sendmail -t -i

$ sudo ps aux | grep sendmail
eric      2486  0.0  0.4   8368  2344 pts/0    T    14:52   0:00 sendmail -s “Hello world” myemail@gmail.com
eric      8747  0.0  0.3   5692  1616 pts/2    T    16:18   0:00 sendmail
eric      8749  0.0  0.3   5692  1636 pts/2    T    16:18   0:00 sendmail start
eric      9190  0.0  0.3   5692  1636 pts/2    T    19:12   0:00 sendmail start
eric      9192  0.0  0.3   5692  1616 pts/2    T    19:12   0:00 sendmail
eric      9425  0.0  0.3   5692  1620 pts/1    T    19:37   0:00 sendmail
eric      9427  0.0  0.3   6584  1636 pts/1    T    19:37   0:00 sendmail restart
eric      9429  0.0  0.3   5692  1636 pts/1    T    19:38   0:00 /usr/lib/sendmail restart
eric      9432  0.0  0.1   3040   804 pts/1    R+   19:38   0:00 grep --color=auto sendmail

Когда я запускаю $ sendmail start, он просто зависает и ничего не делает. Я также установил postfix, чтобы посмотреть, поможет ли это, но не помогло.

Пытался увидеть 25 порт:

eric@eric-linux:~$ telnet localhost 25
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 eric-linux ESMTP Postfix (Ubuntu)

Спасибо

попробуйте "обвязать" sendmail, чтобы понять, почему он блокируется.

попробуйте также настроить его для использования интеллектуального хоста (например, вашего внутреннего сетевого сервера ретрансляции почты, спросите системных администраторов):

yum|apt-get install sendmail-cf

vim /etc/mail/sendmail.mc 

define(`SMART_HOST',`smtpserver.tld')

или

define(`SMART_HOST',`localhost')    <-- to enforce sendmail to use your postfix

обратите внимание, что в этом странном синтаксисе

dnl define(`SMART_HOST',`smtpserver.tld')

это закомментированная строка !!! так что избавьтесь от dnl, если вы нашли в строке по умолчанию smart_host

построить конф

m4 sendmail.mc > sendmail.cf

service sendmail restart

Попробуй это:

sendmail -s "Test" youraddr@ciao.it

вам действительно нужна полная установка mta? Я никогда не использую sendmail и установил только один постфикс для всех моих серверов. во всех остальных я использую ssmtp. гораздо проще настроить и эффективнее использовать, если вашему серверу не нужно получать электронные письма.

попробуйте примеры в документации вместо. Если это сработало, скорее всего, вы забыли передать дополнительную информацию в mail (). В противном случае область, которую нужно искать, будет вашей конфигурацией sendmail.

Вы проверили брандмауэр? Я пытался решить эту проблему после настройки строгого брандмауэра, блокирующего все порты ввода и вывода, кроме тех, которые используются демонами.