Portál AbcLinuxu, 1. června 2025 17:55


Dotaz: Sendmail posílá, PHP fce mail() ne

Jan Zahornadsky avatar 16.12.2005 11:50 Jan Zahornadsky | skóre: 22 | blog: hans_blog
Sendmail posílá, PHP fce mail() ne
Přečteno: 302×
Odpovědět | Admin
Ahoj,

řeším tu jeden problém a už si nevím rady (moc konfiguraci apache, php a sendmailu bohužel nerozumím). Snad jsem nakonfiguroval sendmail už OK, protože přímo z řádky můžu použít cat pripraveny_email | sendmail muj_email@server.cz a email mi dojde.

Pokud ale použiji někde v PHP skriptu funkci mail(), ta vrátí sice "true", ale email nedorazí (obsah i s hlavičkami je stejný v PHP i v bashi, takže nějaký spam filtr kvůli něčemu vylučuji).

V php.ini mám sendmail_path=/usr/sbin/sendmail -t -i, což by mělo být taky správně... Už nevím kam dál se mám kouknout, co zkontrolovat, poradíte mi prosím?

Díky moc
Actually, I was half an hour into the pointer scripting documentation when she got dressed and left.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.12.2005 11:59 Martin
Rozbalit Rozbalit vše Re: Sendmail posílá, PHP fce mail() ne
Odpovědět | | Sbalit | Link | Blokovat | Admin
ja mam sendmail_path= zakomentovany, tedy se bere default hodnota a funguje to... btw a co vypisuje log sendmailu?? musi tam byt nejaka komunikace ne?;)
16.12.2005 12:14 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Sendmail posílá, PHP fce mail() ne
Odpovědět | | Sbalit | Link | Blokovat | Admin
Není něco v logu PHP? Napadá mne, že třeba uživatel, pod nímž běží (klientské instance) Apache, nemá právo spouštět sendmail, nebo nějaká podobná vylomenina.
Jan Zahornadsky avatar 16.12.2005 14:14 Jan Zahornadsky | skóre: 22 | blog: hans_blog
Rozbalit Rozbalit vše Re: Sendmail posílá, PHP fce mail() ne
No byla to vylomenina až to bolí... :-(

Neběžel sendmail daemon... Zatímco, nevím proč sendmail binárka si poradí i bez něho, php asi ne.
Actually, I was half an hour into the pointer scripting documentation when she got dressed and left.
16.12.2005 15:11 mlz | skóre: 12 | blog: Obcas
Rozbalit Rozbalit vše Re: Sendmail posílá, PHP fce mail() ne
Je to proto, ze mail fce komunikuji primo s portem a serverem, melo by to byt nastavitelne. Sendmail ma v konf. souboru, co s mailem mam udelat tedy - najit si MX zaznam a odeslat ten mail na TEN patricny server. V pripade, ze je to posilano LOKALnimu uzivateli, zadny port nepotrebuje. V pripade ciziho stroje potrbuje, aby ten port byl otevreny na patricnem stroji.
16.12.2005 14:29 lubo
Rozbalit Rozbalit vše Re: Sendmail posílá, PHP fce mail() ne
Odpovědět | | Sbalit | Link | Blokovat | Admin
problem moze byt v tom, ze sendmail nie ja ani tak sendmail ako nejaka utilita, ktora chovanie sendmailu emuluje :-))) takze odporucam spravit si cgi skript s mail() a prehnat to cez strace resp. pusit priamo
strace php << END mail(...) END 
a strace vam na konci vypise, co vlastne utilita, kt. php pouziva na odosielanie mailov zanadavala.
23.1.2006 23:57 Kroko | skóre: 22
Rozbalit Rozbalit vše adresa ve from
Odpovědět | | Sbalit | Link | Blokovat | Admin
ja mam jiny problem, at davam adresu v hlavicce mail() FROM: adresa jakoukoliv, vzdy pak v logu mail serveru vidim ze se to odesila z mail adresy uzivatele pod kterym je zpusteny PHP a samozrejme se to neodesle, protoze ta domena (domena PC) neexistuje a mail server to proto neodesle.

Nevite nekdo prosim jak donutit PHP aby mail serveru predaval jako from to: adresu kterou mu dam ve funkci mail() ?
http://kroko.evesnight.net
24.1.2006 00:09 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: adresa ve from
Myslíte opravdu adresu v hlavičce? Řekl bych že ne, protože ta se v logu sendmailu určitě neobjeví. Pokud je mé tušení správné a vy ve skutečnosti máte na mysli adresu obálky (tj. to, co se posílá jako adresa v SMTP příkazu MAIL), podívejte se na web PHP do příkladů u dokumentace k funkci mail() a do dokumentace k sendmailu na termín trusted users.
24.1.2006 12:01 Kroko | skóre: 22
Rozbalit Rozbalit vše Re: adresa ve from
no asi sem se spatne vyjadril, jde o to, ze kdyz se pouzije protokol SMTP, tak se pokud vim ma po pozdraveni se serverem pouzit prikaz MAIL FROM: no a do toho mi podle me PHP vlozi adresu nobody@domainserver.tld a postfix pri odesilani overi tu domenu a jelikoz neexistuje tak postu zahodi

zajimalo me tedy jak PHP donutit aby tam dal jinej mail. ale vyresim to asi tak ze proste domenu na serveru nastavim na nejakou existujici domenu a pak by to melo bezet
http://kroko.evesnight.net
24.1.2006 13:19 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: adresa ve from
Příkaz sendmail z instalace Postfixu by měl být kompatibilní s originálem, takže předpokládám, že ten postup, který je popsán v příkladech u dokumentace funkce mail(), by měl fungovat i s ním. Jen vám z hlavy neřeknu, co je potřeba nastavit v Postfixu, aby to tomu uživateli, pod kterým Apache běží, dovolil.
24.1.2006 00:10 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: adresa ve from
Ještě technickou poznámku: nový dotaz zadávejte jako nový dotaz. Nepřidávejte ho k nějakému starému.
24.1.2006 11:57 Kroko | skóre: 22
Rozbalit Rozbalit vše Re: adresa ve from
dobre, priste ale tohle jsem zamerne pridal k tomuto vlaknu
http://kroko.evesnight.net
24.1.2006 11:58 Kroko | skóre: 22
Rozbalit Rozbalit vše Re: adresa ve from
dobre, priste ale tohle jsem zamerne pridal k tomuto vlaknu
http://kroko.evesnight.net
24.1.2006 11:33 straha
Rozbalit Rozbalit vše Re: adresa ve from
Pokud máte na serveru qmail tak si do hlavičky doplňte "Return-Path: ..."
24.1.2006 11:56 Kroko | skóre: 22
Rozbalit Rozbalit vše Re: adresa ve from
mam tam postfix
http://kroko.evesnight.net

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.