Autor Zpráva
svat
Profil
Dobrý den,
chtěl bych požádat o pomoc s mailovým formulářem. Mám 3 soubory - objednavka.html (v hlavičce UTF-8, v PSPadu kódováno na UTF-8), objednavkaOK.html (v hlavičce UTF-8, v PSPadu kódováno na UTF-8) a formtoemail.php (též v hlavičce UTF-8, v PSPadu kódováno na UTF-8).

Jediný mailklient, který zobrazí obsah korektně česky je Thunderbird. Windows Live Mail ukazuje nesmysly, Outlook také. (gmaily i seznam) Na webovém rozhraní gmailu i seznamu je vše správně česky. Na dalším počítači s mailklienty Outlook a emKlient to česky není. Na dalším počítači Apple je to v applovském klientovi OK, v outlooku ne.

Předmět emailu se zobrazuje správně všude, jen obsahy polí z html souboru jsou nečesky (jméno, adresa, poznámka ....)

Vyzkoušel jsem už mnoho návodů a rad -nic nepomohlo (nebo jsem to nepochopil, nebo to neumím správně implementovat)

Trápím se s tím už třetí den, četl jsem a zkoušel mnoho rad, např. z Kodování v mailu, nepomohlo mi to.

Zkoušel jsem vše nakódovat do Windows-1250, ale to zase chodilo v nějaké azbuce.

Mohl by mi prosím někdo poradit jak upravit kód, aby jej všechny mailklienti dokázali zobrazit česky? Nastavit si klienta tak, aby se to zobrazovalo správně mě, asi není problém, ale kopie objednávjky chodí zákazníkovi a tam nemohu ovlivnit nastavení čehokoli.

Pokud se najde dobrá duše, která poradí, jak upravit kód budu vděčný. Prosím polopaticky.

Děkuji.

KÓD formtoemail.php :

<?php
header("Content-Type: text/html; charset=UTF-8");

$your_email = "xxx@yyy.cz"; 
$thankyou = "objednavkaOK.html";
$subject = "OBJEDNAVKA ĚŠČŘŽÝÁÍÉ";

$empty_fields_message = "<p>Prosím zkontrolujte správné vyplnění všech formulářových polí.</p>";

$JMENO = trim(stripslashes($_POST['JMENO']));
$email = trim(stripslashes($_POST['email']));
$year = date("Y");
$month = date("m");
$day = date("d");
$hour = date("h");
$min = date("i");
$tod = date("a");

 {
    // Timestamp this message
    $TimeOfMessage = date('d')."/".date('m')."/".date('y')."(".date('D').") @ ".date('H:i');

    // finally, send e-mail
    $ip=$_SERVER["REMOTE_ADDR"];
    $message = "Zpráva byla odeslána " .$TimeOfMessage."\n";
    $message .= "---------------------------------------------------------\n";

    // send the complete set of variables as well
    while (@list($var,$val) = @each($_POST)) {
      $message .= "$var: $val\n";
    }

    // send the email
    mail($your_email, $subject, $message, "From: $JMENO <$email>");
    mail($email, "Kopie Vaší objednávky", $message, "From: $your_email");

    // go to return URL
    if (isset($thankyou)) {
    header("Location: $thankyou");
    exit();
    }
}
?>
juriad
Profil
Četl jsi Nejčastější potíže s PHP (FAQ) A máš nějaký důvod nepoužít PHPMailer, který odesílání mailů řeší kompletně?
smitka
Profil
Ta hlavička content type do hlaviček mailu (ne stránky) nepomohla? http://php.vrana.cz/kodovani-hlavicek-e-mailu.php

Obecně doporučuji na maily PHP mailer, ušetří to velmi mnoho práce a problémů: https://github.com/PHPMailer/PHPMailer (stačí použít jen ten soubor class.phpmailer.php).
bestik_63
Profil
Přesně tímto jsem se zabýval asi 4h, zkoušel jsem spoustu návodů, ale nikdy jsem funkci mail nedonutil posílat diakritiku :-)
Ušetříš spoustu času použitím knihovny PHPMailer, můžu ji doporučit :-)
svat
Profil
Děkuji všem za rady - PHPMailer jsem si stahnul, prohlédl si soubory, ale nejsem z něj moc chytrej a nevím jestli to zvládnu, spíše zatím ne. Hledal jsem na webu český návod, moc pro mne použitelného jsem ale nenašel. Vím, že se s tím asi budu muset naučit pracovat, ale nyní potřebuji problém vyřešit rychle. Kdyby mi to někdo spíchnul "na klíč" jsem ochoten zaplatit.
Napadá mne otázka - jde PHPMailer použít na zpracování a odesílání již hotového HTML formuláře?
juriad
Profil
svat:
Návod máš na titulní stránce projektu. Nic víc nepotřebuješ. Jen smažeš ty části, které od poledu nepotřebuješ.
svat
Profil
juriad:
Po mnoha neúspěšných pokusech nastavit PHPMailer tak aby pracoval jak potřebuji, jsem sáhl k hotovému řešení na http://formaya.com a nemohu si stěžovat - vše šlape jak má a maily jsou i pěkně nastylovaný. Dokonce se dá nastavit smtp odesílání z mého mailu.
Děkuji všem za rady.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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