Autor Zpráva
Lukame
Profil *
Ve formuláři odkazuji action na PHP odesílací sopubor obsahující:

<head>
<meta http-equiv="Content-Language" content="cs">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
</head>
<body>
<?
$header .= "Content-Type: text/plain; charset=\"iso-8859-2\"\n";
if ( Mail("edbusy@email.cz", $_REQUEST["predmet"], $_REQUEST["zprava"],"From:".$mail_odesilatele))
Mail($_REQUEST["mail_odesilatele"], $_REQUEST["predmet"],"text win ěščřžýáíé","From:edbusy@email.cz");
echo "odesláno jest win ěščřžýáíé";
?>

Je to v podstatě taková automaticka odpověď z webu. Prvním voláním fce MAIL se odešla na mou adresu adresa žadatela a druhým voláním téže fce se na adresu žadatele odešlou žádaná data.
no, a nastává problém s češtinou. Ještě se mi nepodařilo odeslat oba e-maily se správnou diakritikou. Nevíte někdo v čem je problém a jak to ošetřit?
Další problém nastává v době odezvy rozesílání. Ovšem hostuji na webzdarma s neplaceným hostingem, takže tuším, že problém s odesíláním emailů bude na této straně.
Děkuji za odpovědi. lukame
Thalia
Profil
Nevidím, že bys v mail() posílal tu hlavičku s kódováním (mail($to, $subject, $message, $headers);).
Taky bych volila stejné kódování stránky a emailu.
Lukame
Profil *
Thalia,
díky, kódování samozřejmě volím stejné. Tato ukázka už je výtržek z různých pokusů, takže to v tomto případě nesouhlasí. JInak je to samozřejmostí.
MOhla bys mě, prosím, ten zdroják přepsat, jak by měl fungovat? Jak je vidět, jsem začátečník, takže v tom tu chybu nevidím.
krteczek
Profil
skus to takhle: první funkce maily odesílá, druhá je volána na formální kontrolu emailových adres

<?php
function posli_mail($komu = 'muj@email.cz', $predmet = 'zprava z webu', $obsah, $odkud = 'muj@email.cz')
{
/*********
Funkce starající se o odeslání emailů.
Použití:
if(posli_mail($email, $predmet, $obsah, $odkud) === true)
{
echo 'email byl uspěšně odeslán';
}
else
{
echo '<p>Litujeme, email se nepodařilo odeslat</p>';
}
Je možno vynechat defaultní hodnoty, když posíláme email sami sobě:
Příklad:
if(posli_mail( , , $obsah))
Prostě stačí použít jen neprázdný $obsah a zbývající hodnoty se doplní z defaultních hodnot
návratová hodnota je true nebo false
*********/
if((trim($obsah) == '') || (trim($predmet) == '') || (trim($komu) == '') || (trim($odkud) == ''))
{
return false;
}
else
{
if((je_email($komu) === true) && (je_email($odkud) === true))
{
$hlavicka = "Content-Type: text/plain; charset=iso-8859-2" . "\n";
$hlavicka .= "From:" . $odkud;
if(@mail($komu, $predmet, $obsah, $hlavicka))
{
return true;
}
}
}
return false;
}

function je_email ($mail)
{
/*******
Funkce kontroluje formální platnost emailové adresy ( text.nebo-ci_@text.nebo-ci_.domena)
*******/
if (ereg("[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}", $mail))
{
if(strpos($mail,';') === False)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
?>

krteczek
djlj
Profil
krteczek
Ten tvůj kód stejně neumí správně zpracovat diakritiku v předmětu...
krteczek
Profil
djlj: to je sice pravda, ale zase tak velká tragédie to taky není...
Thalia
Profil
Kódování předmětu:
"=?windows-1250?Q?".imap_8bit("$predmet")."?="
Lukame
Profil *
krtecze,
díky za radu, funguje to super. diakritika v předmětu není problém, ale emaily na volny pořád nechodí se správnou diakritikou. Nevíš, čím to může být? dikec
Toto téma je uzamčeno. Odpověď nelze zaslat.

0