Автор Тема: php не праща mail  (Прочетена 6861 пъти)

majo

  • Напреднали
  • *****
  • Публикации: 22
    • Профил
    • WWW
php не праща mail
« -: Jan 07, 2005, 12:57 »
здравейте.

първо ето малко осн. инфо:

SuSE 9.1
PHP 4.3.4.
Apache 2
Postfix 2.0.19

знaчи проблем:

използвам един малък и елементарен php скрипт за post-ване  на form.
...
...
mail($MailTo, $MailSubject, $MailBody, $MailHeader);
...

преди си работеше безотказно с qmail, обаче откак сложих новите версии на php и postfix не ще. пуска само:

Fatal error: Call to undefined function: mail() in /.../.../.../mail.php on line 113

значи:

postfixa си работи желязно.
sendmail работи в конзола.
в /etc/php.ini съм откоментирал реда: sendmail_path=/usr/sbin/sendmail и наистина там има sendmail.
други mail скриптове си бачкат.

някакви идеи?

благодаря ви предварително!

majo
Активен

http://ksivov.hit.bg
You're welcome to the metal age!

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
php не праща mail
« Отговор #1 -: Jan 07, 2005, 14:12 »
Какво има на тази 113 линия от файла?
Активен

0x2B|~0x2B

  • Гост
php не праща mail
« Отговор #2 -: Jan 07, 2005, 14:39 »
113: mail($MailTo, $MailSubject, $MailBody, $MailHeader);
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
php не праща mail
« Отговор #3 -: Jan 07, 2005, 14:51 »
Цитат (Guest @ Ян. 07 2005,15:39)
113: mail($MailTo, $MailSubject, $MailBody, $MailHeader);

Има ли такава стандартна функция? Ако не ти дефинирал ли си? Ако да, компилирал ли си PHP с поддръжка на поща?
Активен

0x2B|~0x2B

  • Гост
php не праща mail
« Отговор #4 -: Jan 07, 2005, 15:25 »
ами мисля, че си има такава функция - преди си работеше безотказно със старото PHP. не съм компилирал новото - инсталирах го от SuSE пакета, както са го сложили, а би трябвало да са го компилирали с такава подръжка. има ли начин да разбера дали е компилирано с подръжка на mail ()?
Активен

hristo_y

  • Напреднали
  • *****
  • Публикации: 20
    • Профил
php не праща mail
« Отговор #5 -: Jan 07, 2005, 16:01 »
Примерен код

<?php
phpinfo();
?>


ei tova go zapi6i kato test.php i go nabutai v htdocs, otvori go prez www i 6te vidi6.
Активен

Христо Янков, Portellus Inc.

  • Гост
php не праща mail
« Отговор #6 -: Jan 07, 2005, 17:03 »
Ако ползваш стандартните PHP пакети от SUSE - там има всичко, просто не си инсталирал всички rpm-и.

От Yast търси всичко което съдържа PHP и го инсталирай. Ако пък вече си слагал PHP от сорс и си го компилирал сам - тогава трябва да пуснеш и модула за поща - ./configure --help
Активен

majo

  • Напреднали
  • *****
  • Публикации: 22
    • Профил
    • WWW
php не праща mail
« Отговор #7 -: Jan 31, 2005, 15:18 »
Цитат (Guest @ Ян. 07 2005,18<!--emo&':0')
Ако ползваш стандартните PHP пакети от SUSE - там има всичко, просто не си инсталирал всички rpm-и.


ами всичко съм сложил и пак не ще.

изглежда php-то въобще не може да праща нищо, защото дори и на това

<?
mail ();
?>

никак не реагира и казва undefined function.

phpinfo ми върна само следното:

...
...
sendmail_from     no value     no value
sendmail_path     /usr/sbin/sendmail -t -i     /usr/sbin/sendmail -t -i
...
...

php -m дава:

[PHP Modules]
bcmath
bz2
calendar
ctype
curl
dba
dbase
domxml
exif
filepro
ftp
gd
gettext
gmp
iconv
imap
ldap
mbstring
mcal
mcrypt
mhash
mime_magic
mysql
odbc
openssl
overload
pcre
pgsql
posix
qtdom
readline
recode
session
shmop
snmp
sockets
standard
swf
sysvsem
sysvshm
tokenizer
wddx
xml
xslt
yp
zlib

[Zend Modules]

php -i дава:
...
...
... /usr/share/php/Mail
...
на няколко места


странно.
това значи ли, че php е компилирано с подръжка на mail()?
Активен

http://ksivov.hit.bg
You're welcome to the metal age!

sys7em

  • Напреднали
  • *****
  • Публикации: 401
    • Профил
    • WWW
php не праща mail
« Отговор #8 -: Feb 01, 2005, 17:49 »
Introduction

The mail() function allows you to send mail.
Requirements

For the Mail functions to be available, PHP must have access to the sendmail binary on your system during compile time. If you use another mail program, such as qmail or postfix, be sure to use the appropriate sendmail wrappers that come with them. PHP will first look for sendmail in your PATH, and then in the following: /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. It's highly recommended to have sendmail available from your PATH. Also, the user that compiled PHP must have permission to access the sendmail binary.
Installation

There is no installation needed to use these functions; they are part of the PHP core.
Runtime Configuration

The behaviour of these functions is affected by settings in php.ini.

Table 1. Mail configuration options
Name   Default   Changeable
SMTP   "localhost"   PHP_INI_ALL
smtp_port   "25"   PHP_INI_ALL
sendmail_from   NULL   PHP_INI_ALL
sendmail_path   DEFAULT_SENDMAIL_PATH   PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Here's a short explanation of the configuration directives.


http://bg2.php.net/mail
Активен

Европейци сме ний, ама все не сме дотам!. . . Прощавай, не е за чудо пак да се срещнем.

  • Гост
php не праща mail
« Отговор #9 -: Feb 02, 2005, 12:26 »
Цитат (sys7em @ Фев. 01 2005,18:49)
PHP must have access to the sendmail binary on your system

sendmail_path     /usr/sbin/sendmail -t -i     /usr/sbin/sendmail -t -i

ima si go.
Активен

sys7em

  • Напреднали
  • *****
  • Публикации: 401
    • Профил
    • WWW
php не праща mail
« Отговор #10 -: Feb 02, 2005, 15:36 »
Цитат (sys7em @ Фев. 01 2005,17:49)
...during compile time. ....

а тва спазено ли е ?
Активен

Европейци сме ний, ама все не сме дотам!. . . Прощавай, не е за чудо пак да се срещнем.

toxigen

  • Напреднали
  • *****
  • Публикации: 243
    • Профил
php не праща mail
« Отговор #11 -: Feb 02, 2005, 16:12 »
Ако не стане по тези начини, провай с Mail класа от PEAR / PECL (не съм много сигурен в кое беше). Позволява ти разни благинки като атачменти, хтмл мейл и такива. Става обаче не с 1 а с 4-5 реда
Активен