Mail Funktion & Umlaute, Übergabe an gmx.net etc

pixel06

Grünschnabel
Hallo zusammen,

Ich habe mal zwei Fragen zu versenden von Kontaktmails.

1. Es geht um Umlaute in den versendeten eMails.

Zum Beispiel unter 'gmx.net' aber auch in Thunderbird, es geht nicht um die Mailnachricht selbst, die werden soweit ich gesehen habe, sauber übergeben. Der Mail Kopf in den Mailprogrammen, gibt teilweise die Umlaute falsch wieder.

z.B. im Thunderbird, im Adressen Fenster (from...)
Name: Jürgen Mustermann

...und im 'gmx.net', dort wird im Betreff Fenster auch keine Schöne Darstellung hergestellt.
Bestätigungsmail der...

(die Betreffzeile wird im Thunderbird übrigens sauber wiedergegeben)

2. Wollte mal hören, ob die Mailfunktion optimal entwickelt wird, auch für aktuelle/kommende PHP
Versionen. Das Versenden der Mails funktioniert ansonsten ohne Probleme.


Kann mir jemand einen Hinweis oder ein paar Tipps geben. Danke

Hier mal ein kurzer Code Auszug:
PHP:
 // Mailtext:  $messagetext und $messagetext1

//Betreffzeile vorbereiten
$mm_betreff = "Kontakt: Mailformular über .... ";
$betreff_user = "Bestätigungsmail der .......";     

 //Absender 
 $mm_von = "$name <$email>";    //User Mail Absender
 $mm_adresse = "Projekt< $mm_adresse>";   //Projekt Mail Adresse

// Headerbereich 
$header = "From: $mm_von\n"; 
$header .="MIME-Version: 1.0\n"; 
$header .="Content-Type: text/plain; charset=utf-8\n"; 
$header .="Content-Transfer-Encoding: 8bit\n";

$header1 = "From: $mm_adresse\n"; 
$header1 .="MIME-Version: 1.0\n"; 
$header1 .="Content-Type: text/plain; charset=utf-8\n";  
$header1 .="Content-Transfer-Encoding: 8bit\n"; 

if(@mail("$mm_adresse", "$mm_betreff", "$messagetext", "$header")) 
 { 
  
     @mail("$email", "$betreff_user", "$messagetext1", "$header1"); 

      //Meldeausgabe für Internetseite

     $mail_server="<div id=\"message\"><h3>$name, Ihre eMail wurde versendet</h3>"; $hinweis="<p><strong>Vielen Dank für Ihre Nachricht</strong></p></div>";  
  
  $name=""; $email=""; $betreff=""; $comment=""; $meldung=""; 
  
  
 }...
 
Hi,

ja manchmal liegt es auch an der Datei selbst oder an der Datenbank. Wenn Datenbank komplett in utf-8, das File-Encoding auch sollte es eigentlich mit deinem MIME gehen,

Am Anfang deiner PHP würde ich noch einen Header einfügen

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



Eigentlich verwende ich die mail() Function von PHP nicht mehr da gibt es andere Sachen xmail, supermail oder wie die heißen ...
 
Hi,

danke für deine Antwort, überlege auch gerade ob ich beim nächsten Projekt mal nach einer anderen Lösung suche, so was wie z.B. 'Mailerklassen'
wurde mir in ein anderes PHP Forum als Tipp empfohlen:

Dein Tipp:
PHP:
<?php

header("Content-Type: text/html; charset=utf-8");
//ist das nicht durch 'charset=utf-8\n' schon abgedeckt?
$header .="Content-Type: text/plain; charset=utf-8\n";

?>
 
Nein hast du nicht! Mit der $header.=".... weißt du die Mail an als UTF8 versendet zu werden. Mit header(); Sagst du das die PHP-Datei als UFT8 ausgegeben wird. Damit werden Inhalte die für deine Email generiert werden UTF8 geschrieben. Es ist auch wichtig das die Datei als uft8 gespeichert ist.

du kannst ja auch mal mit utf8_decoding/encoding arbeiten, hilf manchmal auch wunder. Braucht man aber eigentlich nicht, wenn alles schon auf utf8 ist.
 
Hi, ich danke dir vielmals, jetzt hat es wunderbar geklappt.

PHP:
$betreff_user = utf8_decode("Bestätigungsmail von ...");

// gmx und web.de  gibt das alles wunderbar aus

 $header = "From: =?utf-8?b?".base64_encode($name)."?= <".$email.">\r\n"; 
//Thunderbird gibt den Namen mit Umlaut jetzt auch sauber aus

:)
 

Neue Beiträge

Zurück