Autor Zpráva
panterek
Profil
Můj problém je v podstatě v nadpisu...skript:

if (isset($_POST['odeslat_pripominky']))
  {
$pripominky = $_POST['pripominky_text'];
$predmet = $_POST['predmet_pripominky'];
$jmeno = $_POST['jmeno_pripominky'];
$odeslani = Mail("muj.mail@domena.cz",$predmet,$pripominky,"From: ".$jmeno);

if ($odeslani)
  
echo "<h1> Odeslán </h1>";
 else
echo "<h1> Neodeslán </h1>";
  }

Jak to vypadá nebo nevypadá, to prosím neřešte, dělám v php druhý týden :) Jen by mě zajímalo, proč se mi ten mejl neodešle :( Tou kontrolou to prošlo, napíše mi: "Odesláno", ale mail mi nepřijde...nemá se ještě něco někde konfigurovat?? POP3 nebo tak něco? díky
bohyn
Profil
panterek
Zkousis to na localhost nebo na serveru?
Edit: Co obsahuje promena $_POST['jmeno_pripominky']? Jmeno, email nebo oboje? Do From hlavicky patri e-mail popripade "jmeno <email@example.com>"
panterek
Profil
Zdrojový kód toho odesílacího formuláře je tady:
A zkouším to na localhost...Tu hlavičku Form teda budu mít nejspíš špatně, ale zkoušel jsem to i bez ní..


<div id="kontakt">

<form method="post" action="index.php" wrap="off">
<table>
<tr>
<td> Jméno a Příjmení: </td>
<td> <input type="text" name="jmeno_pripominky" size="20"> </td>
</tr> <tr>
<td> Předmět: </td> <td>
<select name="predmet_pripominky">
<option value="pripominky">Připomínky</option>
<option value="dotazy">Dotazy</option>
</select> </td>
</tr>
</table> <br />

<textarea name="pripominky_text" cols="70" rows="15"> </textarea>
<table>
<tr>
<td> <input type="reset" value="smazat"></td>
<td> <input type="submit" value="Odeslat" name="odeslat_pripominky"> </td>
</tr>
</table>
</form>

Každopádně v tom php kódu, kde mám podmínku
if ($odeslani), tak jsem si nechal vypsat, jestli je vše v pořádku, takže:
echo $pripominky;
echo $jmeno;
echo $predmet

a všechno mi vypíše..prostě jako by nefungovalo samotné odeslání či co..
jrm
Profil
Máš v souboru php.ini v adresáři Woken zeditováno pro sebe:
...
[mail function]
; For Win32 only.
SMTP = smtp.server.cz
smtp_port = 25

; For Win32 only.
sendmail_from = moje@adresa.cz
...

???
radas
Profil *
panterek
možna ti to bloku antispam..zkus tam dat misto ´"From: ".$jmeno toto

$od = "From:$jmeno \r\n";
$od .= "Reply-To:$jmeno\r\n";
$od .= "Content-Type: text/html;\r\n charset=\"UTF-8\"\n";

a volat celou funkci
Mail("muj.mail@domena.cz",$predmet,$pripominky, $od);
taky jsem měl s tím problém ale tohle mi to vyřešilo...
panterek
Profil
S tou proměnnou $od mi to vypsalo "parse error" a byl jsem zdechlý zkoumat chybu :)...ale každopádně ten parametr "from" není podmínkou...mám dojem...takže když ho vynechám, beztak by se mejl měl poslat....předpokládám...:) ...a jinak mám Linux, tady je ekvivalent php.ini co? :) Právě myslím, že by chyba mohla být v tom nastavení, jen nevím, kam tyto údaje v linuxu napsat.
jrm
Profil
http://www.linuxsoft.cz/article.php?id_article=635
panterek
Profil
Tak řádky jsem přepsal na:

[mail function]
; For Win32 only.
SMTP = smtp.avonet.cz
smtp_port = 25

; For Win32 only.
sendmail_from = moje@adresa.cz

..restartoval jsem apache..ale pořád nic kurnik :(
bohyn
Profil
panterek
Jeste zakomentuj radek "sendmail_path". Linux standartne odesila maily pres sendmail a nektere mailservery blokuji postu odesilanou pres domaci SMTP server. Zakomentovanim "sendmail_path" vynutis pouziti SMTP serveru co mas nastaveny.
nightfish
Profil
phpmailer řeší každý váš problém s posíláním mailů...
pro použití SMTP serveru v PHP je nutné, aby SMTP nepožadoval autentizaci, což ovšem z bezpečnostních důvodů není vhodné - pak je potřeba buď rozběhat a nastavit sendmail a nebo použít phpmailer, který se se SMTP autentizací umí vypořádat
PHP_Nemaster
Profil
V tom mail musíš napsat malé písmeno. Mně třeba nefungovalo, když jsem místo $_POST napsal $_post - možná to bude tím.
tiso
Profil
PHP_Nemaster - ???
panterek
Profil
Tak jsem se k tomu po dlouhé době dostal..phpmailer zní dobře, stáhnul jsem, ale byl tam návod na trochu starší verzi, u té nové se postupuje asi malinko jinak, tak to ještě zkouším...ještě mě ale napadlo, v linuxu slouží k posílání mailů výborná utilitka "mutt"...co kdybych jednoduše na posílání použil mnou vytvořený linuxový skript a vložil ho do php..? Něco jsem o tom četl, tuším, že by se to v php použilo jako...objekt??

EDIT: No...tak už to funguje..na netu jsem zabrouzdal a musel jsem přidat nějaké řádky, konečná funkční podoba je tahle:

$hlavicky="From: ".'mail@odesilatele.cz'."\nReturn-Path:".'mail@odesilatele.cz';
$odeslani = @mail ("muj@mail.cz", $predmet, $pripominky, $hlavicky, "-f "."muj@mail.cz");

sice mi ta syntaxe zatím není moc jasná, konkrétně "-f "."muj@mail.cz"....ale tak to se snad taky někde dočtu, stejně tak, jako proč se mi neodešle text se správnou diakritikou :) každopádně kdyby někdo poradil, budu rád...

moc všem díky za reakce...
crook
Profil *
Ad diakritika: Co mas v hlavicce za kodovani? Hlavicka je mezi tagy <head></head>
panterek
Profil
No, právě že UTF-8...stránky mi s diakritikou normálně fungují...jen když si pošlu mail přes funkcni mail() , tak mi diakritika přijde do schánky špatně..
SwimX
Profil
panterek
Nejčastější potíže s PHP #2
panterek
Profil
To by mohlo fungovat, vyzkouším....díky
Jakub Strzadala
Profil *
pardon, ale vložím se do daného problému, pokud odesíláte na localhostu v Linuxu musíte mít nainstalovanou aplikaci sendmail ;) či nějaký jiný SMTP server v linuxu. Bez toho to opravdu nepůjde.... a nechápu proč všichni tady odkomentováváte řádky, kde je jasně napsáno Win32 only a zakomentováváte sendmail_path, která tu je právě kvůli linuxu, a další věc, nepotkal jsem žádný server, který by mi blokoval Linuxový domácí SMTP server. Pokud je podle standartu, jako třeba sendmail

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: