Shop: Bestellmail als UTF-8

Hier können Sie Fragen bezüglich des Shop Moduls stellen.
urlaubsland-polen
Senior Member
Beiträge: 420
Registriert: Mo 13. Nov 2006, 12:23
Wohnort: Olsztyn, zuvor Warszawa
Kontaktdaten:

Shop: Bestellmail als UTF-8

Beitragvon urlaubsland-polen » So 6. Jul 2008, 12:32

Hallo WE-Gemeinde,

nachdem ich meinen Shop von ISO-8859-1 auf UTF-8 umgestellt habe, bekomme ich die Bestellmail nicht als UTF-8 gesendet, obwohl die Codierung dem Mail mitgegeben wird. Jede Mail hat die Sonderzeichen als schwarze Fragezeichen.

Ändere ich im Mailprogramm jedoch die Codierung auf ISO-8859-1, werden die Zeichen richtig dargestellt.
<!-- Bestätigungsmail für Kunden, eine Kopie für Shopbetreiber-->

<?php
$To = $webuser["Kontakt_Email"];
?>

<we:sendMail id="7521" subject="Ihre Bestellung im Online-Shop von Urlaubsland Polen." recipient="$To,XXXXXXXX@XXXXXX.XX" from="XXXXXXXX@XXXXXX.XX" reply="XXXXXXXX@XXXXXX.XX" mimetype="text/html" charset="UTF-8" />

<!-- Ende Bestätigungsmail -->
Irgendwie habe ich sendMail unter Verdacht. Aber wo zum Teufel stelle ich die Codierung für sendMail auf UTF-8 um?

Maik Veit
Internet-Zeitung http://www.urlaubsland-polen.info

urlaubsland-polen
Senior Member
Beiträge: 420
Registriert: Mo 13. Nov 2006, 12:23
Wohnort: Olsztyn, zuvor Warszawa
Kontaktdaten:

Beitragvon urlaubsland-polen » Mo 7. Jul 2008, 10:26

Langsam ist der Fehler einzugrenzen, habe aber noch keinen Löungsansatz.

Habe gerade mal mit Thunderbird geprüft: Das wie oben beschriebene Mail hat im header als Content-Type: text/html; charset=UTF-8.

Das bedeutet, dass das Mail doch als UTF-8 über sendMail rausgeht.

Hat niemand eine Idee?

Maik Veit
Internet-Zeitung urlaubsland-polen.info
WE-Version: 4.1.2.2

Benutzeravatar
schmitter
webEdition Member
webEdition Member
Beiträge: 163
Registriert: Di 28. Aug 2007, 08:39
Kontaktdaten:

Beitragvon schmitter » Mo 7. Jul 2008, 20:46

Hallo Maik,

kann es vielleicht sein, dass der Mailtext noch im ISO-Format abgespeichert ist? Das wäre so meine einzige Idee :rolleyes:
Keep on Rockin´
Thomas

Frische Webkonzepte - Aufgewärmtes gibt's woanders

urlaubsland-polen
Senior Member
Beiträge: 420
Registriert: Mo 13. Nov 2006, 12:23
Wohnort: Olsztyn, zuvor Warszawa
Kontaktdaten:

Beitragvon urlaubsland-polen » Di 8. Jul 2008, 08:20

Hallo Thomas,

ich hatte die Dokumente nach der Umstellung auf UTF-8 geparkt und neu veröffentlicht.

Die Prozedur der Mail-Aussendung besteht aus zwei Dateien: einer ordner.php und eine bestellmail.php Beide sind UTF-8.

Die order.php enthält die Anweisung die Mail zu versenden.

Die bestellmail.php den eigentlichen Mail-Inhalt. Vielleicht muss ich dem <we:makeMail> irgendwie mitgeben, dass es ein UTF-8-Mail wird. Aber eher nicht, weil das Mail ja als UTF-8 ankommt.

Das Problem liegt eher darin, dass es die Daten aus der Kundenverwaltung greift und die Titel der Waren. Beides wird bei deutschen und polnischen Umlauten in der Mail falsch dargestellt, auf den Webseiten (UTF-8) jedoch fehlerfrei.

Jetzt suche ich den Fehler eher in der bestellmail.php . Muss der Session vielleicht auch UTF-8 zugewiesen werden und wie? Die Session-Daten werden zurückgesetzt und dann mit den Bestelldaten (Name...Waren) gefüllt und in dem Mail mitgeschickt.
<we:makeMail><?php session_start();
if(isset($_SESSION['Orders[]'])) {
}
else {
unset($_SESSION['Orders[]']);
$_SESSION['$totalPrice'] = 0;
$_SESSION['$totalVat1'] = 0;
$_SESSION['$totalVat2'] = 0;
}
?>

<body>
<tr>
<td>

<p><strong>Bestellung im Online-Shop von Urlaubsland Polen</strong></p>

<p>Guten Tag <?php echo $_SESSION[webuser][Anrede_Anrede]; ?> <?php echo $_SESSION[webuser][Surname]; ?>,<br/>wir haben soeben eine Bestellung von Ihnen entgegengenommen.</p>

<p>Dabei gaben Sie folgende Daten an:</p>

</td>
</tr>
....
</body>
Maik Veit
Internet-Zeitung http://www.urlaubsland-polen.info

Benutzeravatar
schmitter
webEdition Member
webEdition Member
Beiträge: 163
Registriert: Di 28. Aug 2007, 08:39
Kontaktdaten:

Beitragvon schmitter » Di 8. Jul 2008, 11:31

Hmm, OK - wenn ich das jetzt richtig verstanden habe, kommen die Kundendaten im ISO-Format an. Dann müsste es ja klappen, wenn du die Daten einfach in UTF-8 konvertierst per

Code: Alles auswählen

<?php 
     utf8_encode($_SESSION[webuser][Anrede_Anrede]);
?>
Klappt das?
Keep on Rockin´
Thomas

Frische Webkonzepte - Aufgewärmtes gibt's woanders

urlaubsland-polen
Senior Member
Beiträge: 420
Registriert: Mo 13. Nov 2006, 12:23
Wohnort: Olsztyn, zuvor Warszawa
Kontaktdaten:

Beitragvon urlaubsland-polen » Di 8. Jul 2008, 11:50

Hallo Thomas,

das ist ja das verrückte. Das Mail kommt als UTF-8 an, aber die Zeichen sind beim Versenden zerstört.

Nun habe ich gerade mal anhand des Namens Deinen Vorschlag ausprobiert, aber leider ohne Änderung. Trotzdem besten Dank.
<?php
utf8_encode($_SESSION[webuser][Surname]);
?>
Aus Müller wird M�ller.

Alles herumstachern in den möglichen Varianten bringt nichts, wenn man nicht genau weiß, was WE beim Versenden macht.

Ich hoffe mal, dass der Support auf meine heutige Anfrage (08.47 versandt, bis jetzt noch keine Eingangsbestätigung. Das neue Support-System bei WE scheint noch nicht richtig zu funktionieren.) regagiert und was vorschlägt. Ein Bestätigungsmail als UTF-8 aus einer Shop-Anwendung heraus zu versenden gehört eigentlich heute zum Standard - einerseits des Shopbetreibers, aber auch dem Hersteller eines Shop-Programms.

Maik Veit
Internet-Zeitung http://www.urlaubsland-polen.info

Dirk Einecke
Senior Member
Beiträge: 3735
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Karlsruhe
Kontaktdaten:

Beitragvon Dirk Einecke » Di 8. Jul 2008, 11:50

Hi,
schmitter;48480 hat geschrieben:

Code: Alles auswählen

<?php 
     utf8_encode($_SESSION[webuser][Anrede_Anrede]);
?>
Richtig ist es so:

Code: Alles auswählen

<?php 
  utf8_encode($_SESSION['webuser']['Anrede_Anrede']);
?>

urlaubsland-polen
Senior Member
Beiträge: 420
Registriert: Mo 13. Nov 2006, 12:23
Wohnort: Olsztyn, zuvor Warszawa
Kontaktdaten:

Beitragvon urlaubsland-polen » Di 8. Jul 2008, 11:59

Auch mit
<?php
utf8_encode($_SESSION['webuser']['Surname']);
?>
kein Erfolg. Ich habe dies sowohl in das Bestellmail als auch in die order.tmpl des Standard-Shops eingebaut.

Mit ISO-8859-1 lief alles fehlerfrei. Es muss also an der UTF-8 Codierung liegen.

Maik Veit
Internet-Zeitung http://www.urlaubsland-polen.info

deemes

Beitragvon deemes » Di 8. Jul 2008, 12:49

Nur zur Sicherheit, utf8_encode liefert einen UTF-8-String zurück. Es wandelt nicht die übergebene Variable selbst um. Das hast Du dabei bedacht?

urlaubsland-polen
Senior Member
Beiträge: 420
Registriert: Mo 13. Nov 2006, 12:23
Wohnort: Olsztyn, zuvor Warszawa
Kontaktdaten:

Beitragvon urlaubsland-polen » Di 8. Jul 2008, 14:13

Was mit ISO-8859-1 problemlos funktionierte, geht mit UTF-8 nur mit viel Programmierarbeit. Nun bin ich von Haus aus Journalist und eben kein Programmierer mit sattelfesten php-Kenntnissen. Ich kann schon eine Menge, aber bei dieser Aufgabe komme ich nicht weiter.

Nun könnte man sagen, so viele heißen nicht Müller oder haben Namen und Straßen mit Umlauten. Es ist ja n u r ein Bestätigungsmail... Im Shopmodul wird es ja richtig angezeigt.

Nur wäre da eben nur halbe Arbeit geleistet - so wie beim gesamten Shopmodul.

Ich vertraue mal auf den Support. Nur bin ich mir da auch nicht so sicher. Früher kam mal auf jede Anfrage ein automatisiertes Bestätigungsmail mit der Support-ID. Auf die heutige Anfrage von 08.47 Uhr kam bis jetzt nichts...

Und wenigstens drei andere Supportanfragen (welche Support-IDs haben) warte ich schon über einen Monat auf eine Antwort. Bei einer weiteren Anfrage (Bannermodul) wurde ein Bug erkannt, aber auch da kein Lösungsangebot. Da fehlt mir jetzt echt das Vertrauen.

Ich habe schon einen Kollegen um Hilfe gebeten, der eben fit in WE und php ist. Auf den Kollegen ist wenigstens Verlass, was ich bei allem Verständnis vom WE-Support nicht sagen kann (das ist sicher nicht direkt den Mitarbeitern zuzuschreiben, sondern vielmehr dem Management).

Maik Veit
Internet-Zeitung http://www.urlaubsland-polen.info

Toddler
Member
Beiträge: 76
Registriert: Fr 4. Jul 2008, 13:49

Beitragvon Toddler » Mo 18. Aug 2008, 13:24

Hallo,

schade, dass hier keine weitere Kommunikation mehr stattgefunden hat. Ich kämpfe nun mit einem sehr ähnlichen Problem. Nach dem Login soll ein sessionField ausgegeben werden. Die Daten kommen aus einer UTF8-kodierten Datenbank, die Templates etc. sind UTF-8 codiert. Alle Sonderzeichen werden auch korrekt anzeigt, nur das SessionField ist immer ISO-Codiert - obwohl die Benutzerverwaltungstabelle auf UTF-8 läuft.

Scheinbar zerstört die Datenbankabfrage von Webedition den korrekten Charset. Kann ich das für Sessionfields irgendwo einstellen?

Danke und Gruß,
Toddler

Toddler
Member
Beiträge: 76
Registriert: Fr 4. Jul 2008, 13:49

Beitragvon Toddler » Mo 18. Aug 2008, 13:34

Gestern am Abgrund, heute einen Schritt weiter:

Das gibt mir den Nachnamen mit kryptischen Zeichen aus:
<we:sessionField name="Surname" type="print"/>

Das hier zeigt ihn korrekt:
<?php echo utf8_encode($_SESSION['webuser']['Surname']); ?>

Warum liefert der Webedition-Tag einen Wert in einer komplett falschen Kodierung? Wo kann ich das ändern?

Es kann doch nicht sein, dass ich jetzt auf der ganzen Seite bereits vorhandenen WE-Tags durch PHP-Gefrickel ersetzen muss?

urlaubsland-polen
Senior Member
Beiträge: 420
Registriert: Mo 13. Nov 2006, 12:23
Wohnort: Olsztyn, zuvor Warszawa
Kontaktdaten:

Beitragvon urlaubsland-polen » Mo 18. Aug 2008, 13:48

Hallo Toddler,

in dieser Sache bin ich immer noch nicht weiter. Es wäre für mich interessant zu wissen, ob Du schon WE-Version 5 einsetzt? Da sollte - so eine Anwort vom Support (Hr. Denic) - der Fehler beseitigt sein.

Toddler
Member
Beiträge: 76
Registriert: Fr 4. Jul 2008, 13:49

Beitragvon Toddler » Di 19. Aug 2008, 12:16

Hej Maik,

ja, ich setze die aktuellste Version ein (5.irgendwas, jedenfalls letzter Stand). Dort werden Sessionfields erst nach der manuellen Umwandlung mit utfencode in Php richtig angezeigt. Sieht also so aus als besteht das Problem weiterhin.

Vielleicht kannst Du Herrn Denic auf diesen Thread hinweisen?

Schade - WE ist so ein tolles System. Die grauenvolle Dokumentation und diese Kleinigkeiten sind es, die immer wieder nerven. Ich träume vom WE-Wiki... Da könnte es dann eine Seite zu UTF8 geben, in der genau dieser Bug gelistet ist, und eine Seite zu Sessionfields, die den Bug auch auflistet.

Liebe Grüße,
Toddler


Zurück zu „Shop Modul“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 15 Gäste