• User

    funzione mail() e caratteri accentati

    Ciao a tutti e chiedo scusa se chiedo qualcosa di sa risolto, ho un problema con la funzione mail, l'e-mail mi arriva senza la decodifica utf-8 "che uso anche nelle pagine del sito" dei caratteri accentati o per lo meno se per es. scrivo nel messaggio "spirit è spirit" allora la è la vedo bene mentre se scrivo "spirit + è spirit" la è non viene decodificata, dove sbaglio? Questo e il codice, grazie a tutti.
    [php]
    $mittente = ltrim(rtrim(strip_tags(stripslashes($_POST['email']))));
    //funzione per controllo veridicita e-mail;
    list () = ControlloEmail ($mittente);
    function ControlloEmail($mittente)
    {
    $mittente_ok = eregi("^[_a-z0-9+-]+(.[_a-z0-9+-]+)*@[a-z0-9-]+(.[a-z0-9-]+)+$",$mittente);
    if($mittente_ok == true)
    {
    //variabili globali provenienti dal form;
    $nome = ltrim(rtrim(strip_tags(stripslashes($_POST['nome']))));
    $cognome = ltrim(rtrim(strip_tags(stripslashes($_POST['cognome']))));
    $oggetto = ltrim(rtrim(strip_tags(stripslashes($_POST['oggetto']))));
    $testo= ltrim(rtrim(strip_tags(stripslashes($_POST['testo']))));

    //da chi arriva e-mail $email_sito = "Info: <[email protected]>"; 
    //da chi viene inviata e-amil $mail_to = "[email protected]";
     
     $title = "Richiesta da: $cognome.";
     $body = $title;
     $head = "From: <$email_sito>";
     $headers ="Decodifica\r" ;
     $headers .= "charset=UTF-8\r\n";
     $headers .="Messaggio inviato da:\r $cognome $nome\r E-mail: $mittente\r Oggetto: $oggetto\r\r Info: $testo\n\r";
    
     if($nome=="" || $cognome=="" || $oggetto=="" || $testo=="")
     {
     echo "<p style=\"color:red; font-weight:bold; text-align:center;\">Errore nella compilazione dei dati.<br />Si prega di ricontrollarli ed inserire tutti i campi obbligatori.<br /><br />";
     echo "<a href=\"javascript:history.go(-1)\" alt=\"Torna indietro\" title=\"Torna indietro\"><a href=\"javascript:history.go(-1)\">Torna indietro</a></a></p>";
     }
     else
     {
        if(mail($mail_to, $body, $headers, $head))
      {
      echo "<p style=\"text-align:center;\"> E-mail inviata correttamente!!!<br />Grazie per avermi contattato, rispondero' appena possibile.</p>";
      }
      else
      {
      echo "<p>
      <p style=\"color:red; font-weight:bold;\">C&acute &egrave; stato un errore nell&acute invio dell&acute E-mail.<br />Si prega di riprovare. Grazie<br /><br />";
      echo "<a href=\"javascript:history.go(-1)\" alt=\"go back\" title=\"go back\"><a href=\"javascript:history.go(-1)\">Torna indietro</a></a></p>
     </p>";
      }
     }
    }
       
    elseif ($mittente_ok == false)
     {
      echo "<p>
        <p style=\"color:red; font-weight:bold; text-align:center;\">Errore nella compilazione dell'E-mail mittente. <br /><br />";
      echo "<a href=\"javascript:history.go(-1)\" alt=\"go back\" title=\"go back\"><a href=\"javascript:history.go(-1)\">Torna indietro</a></a></p>
     </p>";
     }
     
    }
    

    [/php]


  • User

    Chiedo scusa avevo inserito il codice sbagliato, questo e giusto:
    [php]
    $mittente = ltrim(rtrim(strip_tags(stripslashes($_POST['email']))));
    list () = ControlloEmail ($mittente);
    function ControlloEmail($mittente)
    {
    $mittente_ok = eregi("^[_a-z0-9+-]+(.[_a-z0-9+-]+)*@[a-z0-9-]+(.[a-z0-9-]+)+$",$mittente);
    if($mittente_ok == true)
    {
    //variabili globali provenienti dal form;

     $nome = ltrim(rtrim(strip_tags(stripslashes($_POST['nome']))));
     $cognome = ltrim(rtrim(strip_tags(stripslashes($_POST['cognome']))));
     $oggetto = ltrim(rtrim(strip_tags(stripslashes($_POST['oggetto']))));
     $testo= ltrim(rtrim(strip_tags(stripslashes($_POST['testo']))));
     
     
     $mail_to = [email protected];
     $body = "Richiesta da $cognome";
     $headers  = "Decodifica\r";
     $headers .= "Content-Type: text/html; charset=UTF-8";
     $headers .= "\r\nMessaggio inviato da:\r $cognome $nome\r E-mail: $mittente\r Oggetto: $oggetto\r Info: $testo";
     
     $sito = "Info Contatti"; 
     $mit = "From: <$sito>";
     if($nome=="" || $cognome=="" || $oggetto=="" || $testo=="")
     {
     echo "<p style=\"color:red; font-weight:bold; text-align:center;\">Errore nella compilazione dei dati. <br />Si prega di ricontrollarli ed inserire tutti i campi obbligatori.<br /><br />";
     echo "<a href=\"javascript:history.go(-1)\" title=\"Torna indietro\">Torna indietro.</a></p>";
     }
     else
     {
      if(mail($mail_to, $body, $headers, $mit))
      {
       echo "<p style=\"text-align:center;\"> E-mail inviata correttamente!!!</p>";
      }
      else
      {
    echo "<p>
      <p style=\"color:red; font-weight:bold;\">C&acute &egrave; stato un errore nell&acute invio dell&acute E-mail.<br />Si prega di riprovare. Grazie<br /><br />";
    echo "<a href=\"javascript:history.go(-1)\" title=\"go back\">Torna indietro</a></p>
     </p>";
      }
     }
    }
      
     elseif ($mittente_ok == false)
     {
      echo "<p style=\"color:red; font-weight:bold; text-align:center;\">Errore nella compilazione dell'E-mail mittente. <br /><br />";
      echo "<a href=\"javascript:history.go(-1)\" title=\"Torna indietro\">Torna indietro.</a></p>";
     }
    }
    

    [/php]