2012-04-13 15 views
0

Ich benutze die PHP-Mail-Funktion, es funktioniert irgendwie gut, ich mag wirklich nicht diese Funktion zu nutzen, sondern muss für diese eine tun.Mail() Funktion bei PHP mit seltsamen Zeichen

Das Problem ist also, die besonderen europäischen Zeichen auf dem E-Mail in einer lustigen Art und Weise gezeigt werden, habe ich versucht, die Kodifizierung zu iso-8859-1 und das gleiche geschieht einzustellen:

$to = $eemail; 
$subject = $campos[4]; 
$message = $campos[5]; 
$message = mb_convert_encoding($message, 'HTML-ENTITIES', 'iso-8859-1'); 
$from = $campos[1]; 
$headers = "From:".$from."\r\n"; 

$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
$headers .= "X-Priority: 3\r\n"; 
$headers .= "X-Mailer: PHP". phpversion() ."\r\n"; 

Die Rest ist ein einfaches E-Mail-Formular, das über AJAX gesendet wird:

$(function() { 
    $(".submita").click(function() {   
     var nome = $('#nome').attr('value'); 
     var email = $('#email').attr('value'); 
     var telemovel = $('#telemovel').attr('value'); 
     var loja = $('#loja').attr('value'); 
     var assunto = $('#assunto').attr('value'); 
     var mensagem = $('#mensagem').attr('value'); 

     var dataString = 'nome='+ nome + '&email=' + email + '&telemovel=' + telemovel + '&loja=' + loja + '&assunto=' + assunto + '&mensagem=' + mensagem; 
     $.ajax({ 
    type: "POST", 
    url: "ajaxload/conemail.php", 
    data: dataString, 
    success: function() { 
     $(".mensagem").fadeIn(); 
     } 
     }); 
     return false; 
    }); 
}); 

Was läuft falsch?

+1

'codification' - es lieben. Tolles neues Wort für die Codierung. – DaveRandom

+0

@DaveRandom Es tut mir wirklich leid, dass ich keine Englischkenntnisse habe. Übersetzen Sie auf Portugiesisch das Wort "Kodifizierung" und "Enconding" und alle enden mit dem gleichen portugiesischen Wort. Danke für die Hilfe. – Souza

+0

keine Sorgen, ich habe keine Lust, es amüsierte mich nur :-) – DaveRandom

Antwort

1

chk diesen Link von php.net

http://php.net/manual/en/function.mail.php 

hoffe, das hilft, das ist der kleine Inhalt dieser php.net Seite I

Sending messages with polish special characters: 
<?php 
function plmail($mail, $sub, $mes){ 
    $headers = "From: ExRobot <[email protected]>\r\n"; 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/plain; charset=utf-8\r\n"; 
    $headers .="Content-Transfer-Encoding: 8bit"; 

    $mes=htmlspecialchars_decode($mes,ENT_QUOTES);//optional - I use encoding to POST data 
    mail($mail, "=?utf-8?B?".base64_encode($sub)."?=", $mes, $headers); 
} 
?> 
Page must be in utf-8 encoding. 
+0

Das Ergebnis dieser Antwort ist 'Versuchen Sie, es mit UTF-8 stattdessen zu kodieren. Was zwar etwas unbeholfen ist, ist aber eine gute Idee. – DaveRandom

+0

Es funktionierte wie ein Charme! Vielen Dank! – Souza

1

wenn Ihre Codierung oder „Kodifizierung gab URL "ist unterschiedlich über Plattformen (dh die Nachricht/E-Mail, Formular, Web-Browser, etc) erhalten Sie seltsame Ergebnisse ...

die meiste Zeit werden Sie mit utf-8

gehen wollen

bearbeiten, wenn Sie mit der Verwendung von UTF-8, weg kippen, aber die Kontrolle über die Seite, die die Meldung angezeigt wird, können Sie ein Meta-Tag gesetzt

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
+0

Encoding, Kodifizierung, haben die gleiche Bedeutung in Portugiesisch, tut mir leid. kann nicht an uft-8 haften, sind die Ergebnisse so schlecht wie für die Verwendung keiner Codierungstyp. – Souza

+0

es ist kein Schuss auf Ihre Englischkenntnisse, das ist der Fachausdruck dafür, soweit es die Dokumentation betrifft ... alternativ könnten Sie die Webseite, die die Nachricht anzeigt, verwenden iso-8859-1 in einem Meta-Tag RGB

+0

Die Seite contact.html ist mit diesem Zeichensatz verknüpft, die contact.php muss nicht angehängt werden . – Souza