Autor Zpráva
Akali
Profil
Ahoj. Nechce se mi odesílat mail s označeným řádkem.. Pokud uvedený řádek odstraním, mail se odešle, ale bez diakritiky.. Poradil by mi někdo, kde mám chybku?

<?php
If($_POST['odeslano'] And $_POST['kontrola']==10 And !Empty($_POST['predmet']) And !Empty($_POST['jmeno']) And !Empty($_POST['email']) And $_POST['email']!="@" And !Empty($_POST['zprava'])){    
    $jmeno = $_POST['jmeno'];
    $email = $_POST['email'];
    $telefon = $_POST['telefon'];
    $zprava = "Zpráva z webu www.ravad.cz".$_POST['zprava']."";
    $zprava .= "\n\n Jméno:".$jmeno;
    $zprava .= "\n Telefon:".$telefon;
    $zprava .= "\n Firma:".$predmet;
    $body = Base64_Encode($zprava);
    // předmět s diakritikou
  $clearsubject = $_POST['predmet'];
  $encodedsubject = "=?utf-8?B?".base64_encode($clearsubject)."?=";
  $predmet = "=?utf-8?B?$encodedsubject?="; 
    //nastavení mailu 
  $headers = "MIME-Version: 1.0".PHP_EOL;
  $headers .= "Content-Type: text/html; charset=UTF-8\r\n".PHP_EOL;
  $headers .= "Content-Transfer-Encoding: base64".PHP_EOL;
  $headers .= "From: $email\r\n";
  
    If(mail("mail", $predmet, $body, $headers)) echo "<div id=\"napiste_nam_spodni\"><img src=\"img/yes.png\"><span style=\"vertical-align: top\"><code>E-mail byl úspěšně odeslán.</div>";
      else echo "E-mail se <strong>nepodařilo poslat</strong> možná kvůli nevyplnění všech údajů nebo kontrolní otázky.";
  }
  else if($_POST['odeslano']) echo "<div id=\"napiste_nam_spodni\"><img src=\"img/vykricnik.jpg\" width=\"50\" height=\"40\"><span style=\"vertical-align: top\"><code>Váš e-mail nebyl odeslán.<br> Pro zaslání Vašeho dotazu musí být vyplněny všechny položky!</div>";
?> 
DJ Miky
Profil
Hlavičky bys měl pro maximální kompatibilitu oddělovat jen pomocí \r\n, ne pomocí PHP_EOL.
Micruss
Profil
zkus takhle

$headers .= "Content-Type: text/html; charset=\"utf-8\"".PHP_EOL

---- edit ----

nemusel si to mazat... možná bude mít příště někdo podobný problém...
Akali
Profil
Děkuji mnohokrát :-) jste machři!

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: