Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: PHP a mail()  (Přečteno 7522 krát)

soundczeck

  • Návštěvník
  • Příspěvků: 25
PHP a mail()
« kdy: 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
UBUNTU 7.04 64bit + WinXP 32bit, ASUS M2N-E, AMD Athlon 64 3200+ Orleans, Transcend 1024MB DualChannel kit, ATI Radeon X1600PRO 256MB, 2x WD250GB SATA2

calcumat

  • Aktivní člen
  • *
  • Příspěvků: 124
PHP a mail()
« Odpověď #1 kdy: 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 ...
Notebook maniak (3 roky na Compaq Armada 1700, 3 roky na Compaq Presario 3070us, teraz Asus M6800VA ...)
Ubuntu registered user 3500, Linux registered user 423474.

soundczeck

  • Návštěvník
  • Příspěvků: 25
PHP a mail()
« Odpověď #2 kdy: 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
UBUNTU 7.04 64bit + WinXP 32bit, ASUS M2N-E, AMD Athlon 64 3200+ Orleans, Transcend 1024MB DualChannel kit, ATI Radeon X1600PRO 256MB, 2x WD250GB SATA2

Sten

  • Návštěvník
  • Příspěvků: 3
PHP a mail()
« Odpověď #3 kdy: 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

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5058
    • Lomítkáři
PHP a mail()
« Odpověď #4 kdy: 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?
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

Pavelp

  • Host
PHP a mail()
« Odpověď #5 kdy: 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".

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5058
    • Lomítkáři
PHP a mail()
« Odpověď #6 kdy: 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
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

Sten

  • Návštěvník
  • Příspěvků: 3
PHP a mail()
« Odpověď #7 kdy: 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 )

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5058
    • Lomítkáři
PHP a mail()
« Odpověď #8 kdy: 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
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

Sten

  • Návštěvník
  • Příspěvků: 3
PHP a mail()
« Odpověď #9 kdy: 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

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5058
    • Lomítkáři
PHP a mail()
« Odpověď #10 kdy: 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?
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

 

Provoz zaštiťuje spolek OpenAlt.