V aktuální verzi PHP 5.2.6, která nyní běží na naší doméně http://tatran.wz.cz/, nám přestalo fungovat odesílání e-mailů prostřednictvím webového formuláře. Nejspíš proto, že funkce mail() se objevila v disable_functions (jak je vidět při z výpisu konfigurace PHP). Tam bohužel patří i funkce fsockopen(), takže nelze použít ani odesílání přes externí zaheslovaný SMTP server pomocí třídy PHPmailer.
Hledal jsem dlouho nějakou radu tady na fóru, ale marně. Vypadá to, že s upgradem PHP na verzi 5 padlo i už i tak dost omezené použití mail() na localhost. Pokud nechce uživatel vymýšlet "prasecká" řešení typu volání externích skriptů atd., má zřejmě smůlu. Nebo se pletu ?
Nepleteš se. Pokud jsou mail() i fsockopen() zakázané, tak si už email nepošleš. Sice jsem si myslel, že to nikdy neřeknu (nenapíšu), ale WZ je na tom už vážně špatně. Poslední měsíce jen slibují, slibují, slibují a činy žádné (myslím činy vedoucí k blahu zákazníků). Prakticky máš jenom tři možnosti:
1) čekat že se něco změní (velmi naivní)
2) vymyslet prasácké řešení
3) změnit hosting
IMHO volání externího skriptu je celkem OK řešení, jediný trochu prasácký na tom je ten fopen na url - doufám že to se smí/dá povolit přes .htaccess i na PHP 5...
<HTML>Bohužel nedá... Ale nevylučuju, že se to mohlo změnit, ta informace je už staršího data.
Hm pozoruju, že zvesela přibývají zakázané funkce v disabled functions... :-/</HTML>
Hm, tak to pak už mě napadaj jen samý prasácký řešení...
'zvesela přibývají zakázané funkce v disabled functions'
Myslim si, ze u mailu to souviselo se spamem a chteli to jednorazove bloknout. Spis si myslim, ze problem je uplne v jinem nastaveni, nekde v configu smtp.
<HTML><i>Myslim si, ze u mailu to souviselo se spamem a chteli to jednorazove bloknout</i><br>
To si nemyslím, to by si moc nepomohli. Php5 jede jen na malém počtu webů, jinak je všude php4 s povolenou funkcí mail() - tedy s oním omezením 10 na hodinu. Já to spíš myslela na to imap_open a session_save_path. První už tam nějakou dobu je, ale tu druhou tam vidím poprvé. Tedy pokud nebyla jen na jiném místě v pořadí.</HTML>