Fórum Ubuntu CZ/SK

Ostatní => Archiv => Téma založeno: soundczeck 19 Září 2006, 01:42:42

Název: PHP a mail()
Přispěvatel: soundczeck 19 Září 2006, 01:42:42
Ahoj nedaří se mi rozchodit mail funkci v PHP, nakonfiguroval sem php.ini a skript mi vrací TRUE hodnotu jakože se mejl odeslal ale na mejl mi nic nepřijde.
Poradí mi někdo? Díky moc
Název: PHP a mail()
Přispěvatel: calcumat 19 Září 2006, 10:03:16
Aby spravne chodila funkcia mail v PHP, musis mat na danom stroji rozbehnutu aj tzv. sluzbu MTA (mail transfer agent) - co je napr. postfix, sendmail, exim atd...
Alternativne je mozne na webe najst kniznice do PHP, ktore nevyuzivaju mail(), ale vedia sa ako klient pripojit na akykolvek definovany smtp server (kludne na inom stroji) a poslat maila.
Skus sem ked tak pastnut konfiguraciu mail() z php.ini ...
Název: PHP a mail()
Přispěvatel: soundczeck 19 Září 2006, 15:25:34
Citace: calcumat
Aby spravne chodila funkcia mail v PHP, musis mat na danom stroji rozbehnutu aj tzv. sluzbu MTA (mail transfer agent) - co je napr. postfix, sendmail, exim atd...
Alternativne je mozne na webe najst kniznice do PHP, ktore nevyuzivaju mail(), ale vedia sa ako klient pripojit na akykolvek definovany smtp server (kludne na inom stroji) a poslat maila.
Skus sem ked tak pastnut konfiguraciu mail() z php.ini ...
Sendmail sem zkusil, aji postfix sem zkusil....asi blbě

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = /usr/sbin/sendmail -t -i
sendmail_from = me@myserver.com
Název: PHP a mail()
Přispěvatel: Sten 13 Prosince 2006, 10:19:48
Táké to zkouším nastavit ale dospěl jsem k tomu, že když odesílám mail přes obyč klienta tak je to OK ale přes php mail(); to prostě nejde (Prosím pomozte nám)

Dec 13 09:45:01 localhost /USR/SBIN/CRON[12621]: (root) CMD (/usr/local/bin/php /var/www/index.php)
Dec 13 09:45:01 localhost postfix/pickup[11755]: 150F14EA29: uid=0 from=
Dec 13 09:45:01 localhost postfix/cleanup[11767]: 150F14EA29: message-id=<20061213084501.150F14EA29@localhost>
Dec 13 09:45:01 localhost postfix/qmgr[11756]: 150F14EA29: from=, size=557, nrcpt=1 (queue active)
Dec 13 09:45:01 localhost postfix/local[11769]: 150F14EA29: to=, orig_to=, relay=local, delay=0, status=sent (delivered to mailbox)
Dec 13 09:45:01 localhost postfix/qmgr[11756]: 150F14EA29: removed
Dec 13 09:45:42 localhost postfix/smtpd[12678]: connect from localhost[127.0.0.1]
Dec 13 09:45:42 localhost postfix/smtpd[12678]: 80E9A4EA28: client=localhost[127.0.0.1]
Dec 13 09:45:42 localhost postfix/cleanup[11767]: 80E9A4EA28: message-id=<1165999542.8135.4.camel@localhost>
Dec 13 09:45:42 localhost postfix/qmgr[11756]: 80E9A4EA28: from=, size=494, nrcpt=1 (queue active)
Dec 13 09:45:42 localhost postfix/smtpd[12678]: disconnect from localhost[127.0.0.1]
Dec 13 09:45:42 localhost postfix/smtp[12684]: 80E9A4EA28: to=, relay=main.in.neco.cz[192.168.1.250], delay=0, status=sent (250 2.0.0 kBD8jY5a012972 Message accepted for delivery)
Dec 13 09:45:42 localhost postfix/qmgr[11756]: 80E9A4EA28: removed
Název: PHP a mail()
Přispěvatel: Petr Merlin Vaněček 13 Prosince 2006, 21:47:33
No popravde ja mam v php.ini toto:
Kód: [Vybrat]
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =
a svete div se, jede to ok

On asi bude for v tomto: (www.php.net)
Kód: [Vybrat]
PHP bude sendmail hledat nejprve v cestě PATH a pak zde: /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/libJinak receno, pokud neni nastavena PATH k sendmailu, zkusi to hledat uplne vsude :) A jen pro jistotu, v soubor /usr/sbin/sendmail skutecne existuje?


Jo a jeste dotaz:
Kód: [Vybrat]
Dec 13 09:45:01 localhost /USR/SBIN/CRON[12621]: (root) CMD (/usr/local/bin/php /var/www/index.php)
Dec 13 09:45:01 localhost postfix/pickup[11755]: 150F14EA29: uid=0 from=
Dec 13 09:45:01 localhost postfix/cleanup[11767]: 150F14EA29: message-id=<20061213084501.150F14EA29@localhost>
Dec 13 09:45:01 localhost postfix/qmgr[11756]: 150F14EA29: from=, size=557, nrcpt=1 (queue active)
Dec 13 09:45:01 localhost postfix/local[11769]: 150F14EA29: to=, orig_to=, relay=local, delay=0, status=sent (delivered to mailbox)
Dec 13 09:45:01 localhost postfix/qmgr[11756]: 150F14EA29: removed
Toto vypada, ze mail odesel a byl doruceny na jmeno@localhost, zkusil jste se podivat do /var/mail zda tam neni soubor "jmeno" ve kterem by byl onen ztracenec?
Název: PHP a mail()
Přispěvatel: Pavelp 13 Prosince 2006, 21:56:18
Kdyz je nainstalovany MTA, pak existuje. Kdyz to neni sendmail, je to symlink, protoze nektere programy ho volaji "natvrdo". Takze v kazdem baliku, ktery poskytuje MTA, je "sendmail".
Název: PHP a mail()
Přispěvatel: Petr Merlin Vaněček 13 Prosince 2006, 21:57:43
Citace: Pavelp
Kdyz je nainstalovany MTA, pak existuje. Kdyz to neni sendmail, je to symlink, protoze nektere programy ho volaji "natvrdo". Takze v kazdem baliku, ktery poskytuje MTA, je "sendmail".
jj, to je pravda, ale obcas tam prave ten symlink chybi :( I kdyz podle toho logu by mel Mail Transport Agent fungovat
Název: PHP a mail()
Přispěvatel: Sten 14 Prosince 2006, 09:34:02
Jsem opravdu rád že mi někdo tak rychle zareagoval jsem trochu nejistý co se týče fór :-)

jinak PHP.ini jsem změnil a /usr/sbin/sendmail opravdu je

mail byl doručen do /var/mail byl v souboru "jmeno" (Diagnostic-Code: unknown user: "/var/www/index.php" a Content-Description: Undelivered Message ) zkouším různé varianty nastavení ale vůbec nic nepomáhá, jestli mohu poprosit projít tyhle body nastavení

1. nevím jestli mám dobře nastavený master.cf - použil jsem stejné nastavení viz. http://www.root.cz/data/master.cf

2. nechápu proč to odesílá jako localhostu když v index.php je klasik doména s .cz (jmeno@domena.cz) script na widlích a jiném linuxovém serveru v internetu normálně funguje odesílá mail() správně

3. nevím jestli je správná řádka v crontab zkouším více způsobů, ale asi bude zádrhel někde jinde když index.php mail() v prohlížeči ho neodešle (jen pro info phpinfo() na ubuntu je OK :-) )

4. možná ještě si myslím že nemám něco nastavené v php nebo apache2 ale nic mě nenapadá (co by se mělo nastavovat pro PHP aby mail() fungoval )
Název: PHP a mail()
Přispěvatel: Petr Merlin Vaněček 14 Prosince 2006, 09:53:43
ad 1. - myslim, ze problem bude spise v /etc/aliases anebo jeste v /etc/postfix/main.cf

ad 2. - Protoze domena je uvedena v mailu, to co tam vypisuje, jsou zpravy o tom, kudy ten mail skutecne jde ... a on jde prave na localhost (lokalni prenos), svym zpusobem by to ale mohlo ukazovat i na spatne nastaveni postfixu.

ad 3. Radka spravna bude, kdyz se index.php spustil (Dec 13 09:45:01 localhost /USR/SBIN/CRON[12621]: (root) CMD (/usr/local/bin/php /var/www/index.php))

ad 4. php i apache pravdepodobne budou nastavene ok, alespon co z logu a z toho, co jsi tu popsal soudim
Název: PHP a mail()
Přispěvatel: Sten 14 Prosince 2006, 11:11:26
tak jsem googlil ale nic co by tak bylo špatné nastavené jsem nenašel :-(

zde jsou moje soubory /etc/aliases a /etc/postfix/main.cf http://www.webimage.cz/ubuntu

jestli tedy tam je něco špatně (v souboru "main" je název main server přes který odesílám maily dál ) ale jak říkám maily třeba z Evolution mi přes localhost odchází v poho
Název: PHP a mail()
Přispěvatel: Petr Merlin Vaněček 14 Prosince 2006, 17:17:36
predpokladam tedy, ze nadrazeny smtp server se jmenuje main a je bezne dostupny pomoci "ping main"

radek
Kód: [Vybrat]
mydestination = localhost, localhost.localdomain, , localhostby zaslouzil upravit na
Kód: [Vybrat]
mydestination = localhost, localhost.localdomainmuzete sem dat i volani fce mail() z php tj. prikaz jakym to volate?