php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.03.2010, 13:52  
Benutzer
 
Registriert seit: 27.11.2009
Beiträge: 36
PHP-Kenntnisse:
Anfänger
Sirius befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] PHPMailer und Umlaute

Hallo,

ich weiß zu dem Thema gibt es hier im Forum schon einige Threads, aber bisher konnte mir keiner meine Frage baentworten....

also ich hab ein "PHP"- Mail Script mit dem ich eine HTML Mail und die dazu passende Text alternative verschicke (mit PHPMailer).

Das Script läuft soweit wie es soll.

Mein Problem ist das die Umlaute in der Text Alternative nicht richtig dargestellt werden.

Das hab ich im PHPMailer eingetragen:

PHP-Code:
public $CharSet           'iso-8859-1';
public 
$ContentType       'text/plain';
public 
$Encoding          'quoted-printable'
Anrede, Name und Vorname kommen aus einer Datenbank und da werden auch die Umlaute in den Namen richtig dargestellt, beim restlichen Alternativtext sieht das z.B. so aus: Ÿbrigens, mšglich

wenn ich nun iso-8859-1 in utf-8 ändere, werden gar keine Umlaute angezeigt : brigens, mglich

und die Namen aus der Datenbank werden auch nicht mehr richtig angezeigt, statt der Umlaute erscheinen dann schwarze vierecke....

Was muss ich denn nun angeben damit es funktioniert?

Oder muss ich die Umlaute auch im Alternativtext irgendwie codieren?
Sirius ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.03.2010, 14:19  
Erfahrener Benutzer
 
Registriert seit: 06.04.2009
Beiträge: 251
PHP-Kenntnisse:
Fortgeschritten
BlackSpirit befindet sich auf einem aufstrebenden Ast
BlackSpirit eine Nachricht über MSN schicken
Standard

Hast du darauf geachtet das die Kodierung in deiner Datei auch UTF8 entspricht?
BlackSpirit ist offline  
Alt 26.03.2010, 14:24  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.115
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

also deine PHP Datei:
sollte sowas haben
PHP-Code:
header('Content-type: text/html; charset=utf-8'); 
deine MYSQL Datenbank sollte sowas haben:

PHP-Code:
mysql_connect()
mysql_select_db();
mysql_query("SET NAME 'utf8'"); 
und dann im PHP Mailer auch auf utf8 stellen..

wenn das alles nicht geht.... dann weis ich auch net
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline  
Alt 26.03.2010, 14:49  
Benutzer
 
Registriert seit: 27.11.2009
Beiträge: 36
PHP-Kenntnisse:
Anfänger
Sirius befindet sich auf einem aufstrebenden Ast
Standard

So hab in Meiner Datenbank jetzt Anrede, Name und Vorname bei Kollation auf utf8_general_ci umgestellt und utf8_general_ci im PHPMailer eingetragen.

Ergebnis: Umlaute aus der Datenbank werden dargestellt.

nur mit den Umlauten in der Mail klappts net, jetzt wird zwar nicht mehr gar nichts angezeigt, dafür werden die umlaute aber in der Form angezeigt:
Ÿber

auch das ergänzen von

PHP-Code:
header('Content-type: text/html; charset=utf-8'); 
ändert das nicht...
Sirius ist offline  
Alt 26.03.2010, 18:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.991
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
mysql_query("SET NAME 'utf8'");
Es heißt SET NAMES
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 27.03.2010, 00:03  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
dafür werden die umlaute aber in der Form angezeigt:
Ÿber
Dann ist der phpmailer immer noch nicht auf utf-8 umgestellt.
Hast die Datei auch hochgeladen ?
Zitat:
auch das ergänzen von

PHP-Code:
header('Content-type: text/html; charset=utf-8');

ändert das nicht..
hat ja auch nichts mit der mail zu tun.

Hast Du Deine php-Datei und den html-Code als utf-8 gespeichert (im Editor) ???

Welchen Editor benutzt Du ?
Koala ist offline  
Alt 29.03.2010, 08:23  
Benutzer
 
Registriert seit: 27.11.2009
Beiträge: 36
PHP-Kenntnisse:
Anfänger
Sirius befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Hast die Datei auch hochgeladen ?
Ja hab ich. Habs auch grad nochmal überprüft.

Zitat:
Hast Du Deine php-Datei und den html-Code als utf-8 gespeichert (im Editor) ???
Hatte ich nicht (wusste einfach nicht das ich das im Editor auf utf-8 umstellen muss).

Zitat:
Welchen Editor benutzt Du ?
Als Editor benutze ich Eclipse.


Naja jetzt hab ich im Editor auf utf-8 umgestellt, die Datei gespeichert und hochgeladen, aber die Umlaute werden immer noch nicht korrekt dargestellt...Im Moment sieht das so aus:

Code:
 
Verfügung.
möglich.
verstärkte
Im PHPMailer hab ich im Moment
PHP-Code:
public $CharSet 'utf8_general_ci'
stehen.
Wenn ich im PHPMailer nur utf-8 schreibe, bleibt die Darstellung der Sonderzeichen im Alternativtext genauso wie bei utf8_general_ci, nur das die Umlaute aus der Datenbank nicht mehr dargestellt werden.
Sirius ist offline  
Alt 29.03.2010, 15:36  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Hatte ich nicht (wusste einfach nicht das ich das im Editor auf utf-8 umstellen muss).
nicht gewußt ?
Zitat:
Hast du darauf geachtet das die Kodierung in deiner Datei auch UTF8 entspricht?
Zitat:
Im PHPMailer hab ich im Moment
PHP-Code:
public $CharSet = 'utf8_general_ci';

stehen.
das ist falsch.

Es muß so aussehn:
PHP-Code:
  /**
   * Sets the CharSet of the message.
   * @var string
   */
  
public $CharSet           'utf-8'
Und SET NAMES hast Du drin ?

Die Daten in der DB sind utf-8 ???

Gibt es da noch irgendein mail-Template welches als iso gespeichert ist ?

error_reporting ist eingeschaltet ?

Gib als meta charset utf8 an und mach ne Testausgabe des mail-Textes per echo.

Ansonsten mußt eben ein Jobangebot erstellen oder unter Projekthilfe posten.

Geändert von Koala (29.03.2010 um 15:39 Uhr).
Koala ist offline  
Alt 29.03.2010, 16:25  
Benutzer
 
Registriert seit: 27.11.2009
Beiträge: 36
PHP-Kenntnisse:
Anfänger
Sirius befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
nicht gewußt ?
Zitat:
Hast du darauf geachtet das die Kodierung in deiner Datei auch UTF8 entspricht?
Hab gedacht das ne UTF-8 Angabe in der Datei dazu muss, hätte nicht gedacht das man den Zeichensatz im Editor in irgendeiner weise umstellen kann.

Die PHPMailer Angabe hab ich nun geändert.


Zitat:
Und SET NAMES hast Du drin?
Ja
Zitat:
Die Daten in der DB sind utf-8 ???
Ja

Zitat:
Gibt es da noch irgendein mail-Template welches als iso gespeichert ist ?
nein, das Script verwendet nur die eigentliche HTML-Mail und den PHPMailer...

Zitat:
error_reporting ist eingeschaltet ?
ja

Zitat:
Gib als meta charset utf8 an und mach ne Testausgabe des mail-Textes per echo.
Hab ich gemacht.
Umlaute aus der Datenbank in der HTML-Mail werden nicht dargestellt,
Umlaute aus der Datenbakt in der reinen Text-Mail schon.

Außerdem werden die Umlaute bei der Browserausgabe der reinen Text-Mail richtig dargestellt, bei der Ausgabe im Email-Programm Mail jedoch nicht.

Bei Mail & GMX werden außerdem Umlaute richtig dargestellt, aber nur wenn der Name aus der Datenbank keine Umlaute enthält. Ansonsten ist der Name richtig und die Umlaute im Text sind falsch.

Bei Web.de kann ich leider nur die HTML Mail prüfen, Da werden die Namen aus der Datenbank falsch dargestellt. Dort werden scheinbar zwei charset angaben übersendet:

Content-Type: text/html; charset="iso-8859-15"
Content-Transfer-Encoding: 8bit

und

Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: quoted-printable

Geändert von Sirius (29.03.2010 um 16:30 Uhr).
Sirius ist offline  
Alt 29.03.2010, 17:55  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Ansonsten ist der Name richtig und die Umlaute im Text sind falsch.
wie meinen ? was ist der Unterschied zwischen Name und Text ???

Zitat:
Dort werden scheinbar zwei charset angaben übersendet:
???
Poste mal den mail-header.

Zitat:
das Script verwendet nur die eigentliche HTML-Mail
was ist denn die eigentliche HTML-Mail ???

Ist das ne separate Datei ?

Ist diese "eigentliche HTML-Mail" auch im Editor als utf8 gespeichert worden ?

Wie kommt der html-Code ins php-Script ?

Poste mal Dein php-Script.
Koala ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Umlaute und MySQL4.1 Datenbanken 2 15.11.2009 15:28
Probleme Umlaute bei UTF-8 user0815 PHP Tipps 2009 27 11.08.2009 12:55
Umlaute mit Request richtig übertragen Lebenssonde JavaScript, Ajax und mehr 4 28.07.2009 15:10
[Erledigt] Kann keine Umlaute im mysql client eingeben Oger Datenbanken 9 02.04.2009 11:54
MySQL Konsole und Umlaute unter Windows [LÖSUNG] f4ckm5 Datenbanken 8 30.03.2009 22:10
[Erledigt] Umlaute und Sonderzeichen decodieren Sermon PHP Tipps 2009 9 27.03.2009 08:18
Umlaute und str_replace MatzeMuc86 PHP Tipps 2008 20 22.10.2008 20:41
PHPmailer: Problem Bilder extern / absolut verlinken, nicht als inline attachment brtl PHP-Fortgeschrittene 2 16.09.2008 20:59
Umlaute in Datenbank Eldra PHP Tipps 2008 3 14.05.2008 07:11
phpmailer + 2 verschiedene E-Mails Sebja PHP-Fortgeschrittene 3 25.06.2006 21:18
Umlaute bei Linux flual2000 PHP Tipps 2006 10 28.04.2006 13:12
phpmailer: Bei smtpf html-Formatierung weg... PHP Tipps 2006 31 11.02.2006 15:43
Umlaute in Dateien per CLI in HTML-Entities umwandeln PHP-Fortgeschrittene 5 19.07.2005 09:06
umlaute im phpmailer PHP Tipps 2005 3 26.01.2005 15:07
[Erledigt] Umlaute werden falsch maskiert PHP Tipps 2004-2 4 11.11.2004 13:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
phpmailer umlaute, http://www.php.de/php-einsteiger/66199-erledigt-phpmailer-und-umlaute.html, phpmailer codierung, phpmailer sonderzeichen, phpmailer charset, phpmailer iso, phpmailer content type, phpmailer umlaute falsch, phpmailer utf-8, phpmailer contenttype, php mailer umlaute, phpmailer encoding, phpmailer utf 8 umlaute, phpmailer encoding umlaute, phpmailer content-type, phpmailer utf8, phpmailer charset umlaute, phpmailer contenttype html, phpmailer iso-8859-1, umlaute php

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum