2 Problemchen phpmailer/zeichenkodierung

Raze

CHARGIN MAH LAZER
ID: 116848
L
6 Mai 2006
294
28
Hallo alle miteinander,

ich habe im Moment 2 Probleme die ich nicht zu lösen vermag.

1. Ich möchte die phpmailer Klasse verwenden, um HTMl Mails zu versenden, jedoch kommen in meinem E-Mail Account immer nur Textmails an.

Hier der Code:
PHP:
$mail = new PHPMailer();
                          $mail->From = "meine Mailadresse";
                          $mail->CharSet  =  "utf-8";  
                          $mail->FromName = "Notifier";
                          $mail->AddAddress($adminmail);
                          $mail->Subject = "Ein neuer User hat sich angemeldet";
                          $mail->IsHTML(true);
                        
                          $email_text = '    
                        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                        <html xmlns="https://www.w3.org/1999/xhtml" dir="ltr">
                        <head>
                        </head>
                        <body>

                       Ein Testtext mit <b>HTMl</b> Tags.
                        
                        </body>
                        </html>
                        ';
                          $mail->Body    = nl2br($email_text);
                          //$mail->AltBody = strip_tags($email_text);
                        $mail->Send();
als Mail bekomme ich dann folgendes:
Code:
From: Notifier <meine Mailadresse>

Message-ID: <e75749beee9e7247e9881e0452c3fbdd@development.webentwicklung-zumbruch.de>

X-Priority: 3

X-Mailer: PHPMailer (phpmailer.codeworxtech.com) [version 2.3]

MIME-Version: 1.0

Content-Transfer-Encoding: 8bit

Content-Type: text/html; charset="utf-8"

    <br />

                        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br />

                        <html xmlns="https://www.w3.org/1999/xhtml" dir="ltr"><br />

                        <head><br />

                        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br />

                        </head><br />

                        <body><br />

<br />

                        <br />

                       Ein Testtext mit <b>HTMl</b> Tags.<br />

                     <br />

                        <br />

                        </body><br />

                        </html><br />
Kann es sein das mein Server diese funktionen nicht unterstützt? Ich hab schon etliche Kombinationen ausprobiert, bin aber zu keinem helfenden Ergebnis gekommen.

2:
Ich habe eine Seite mit UTF-8 Charset laufen. Alle Zeichen werden korrekt dargestellt ( z.b:€ ).
Wenn ich jedoch Daten aus der MySQL DB hole und diese ausgebe bekomme ich beim € Zeichen nur Vierecke angezeigt. Vorher wurden auch Umlaute nicht richtig dargestellt, dies hat jedoch aufgehört als ich die Daten mit uf8_encode() bearbeitet hatte.

Mittlerweile habe ich auch hier etliche Sachen ausprobiert bin aber auch zu keinem brauchbaren Ergebnis gekommen.

Ich hoffe jemand von euch weiß Rat :)

MfG
Raze
 
Du kannst doch nicht nl2br() über den Mailtext hauen 8O
Der Doctype gehört in die erste Zeile (keine Leerzeile davor)!

Probier das mal aus. Danach poste nochmal die Mail. HTML-Mail ist sie ja bereits, nur mit diesem komischen Kauderwelsch kann wohl kein eMail-Programm was anfangen.
 
Hoppsala das nl2br hab ich total übersehen :oops:
Hat aber leider nicht viel gebracht, hab nl2br weggemacht und den doctype direkt an den Anfang des Strings gesetzt.

Code:
From: Notifier <mailadresse>

Message-ID: <d9003b4a257a7c055b7244cbb32bca89@development.webentwicklung-zumbruch.de>

X-Priority: 3

X-Mailer: PHPMailer (phpmailer.codeworxtech.com) [version 2.3]

MIME-Version: 1.0

Content-Transfer-Encoding: 8bit

Content-Type: text/html; charset="utf-8"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

                        <html xmlns="https://www.w3.org/1999/xhtml" dir="ltr">

                        <head>

                        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

                        </head>

                        <body>



                        

                       Ein Testtext mit <b>HTMl</b> Tags.

                     

                        

                        </body>

                        </html>

EDIT:
Ich habe das Script jetzt mal auf einen anderen Server geladen, und es funktioniert tadellos :/
Weiß vllt einer warum?
 
Zuletzt bearbeitet:
hi

deine mails kommen mir aus dem beexscript bekannt vor. Dort war vor kurzem das gleiche Problem. Wir haben dann eine ältere Version eingespielt und dann ging das ganze wieder. Scheint die neue Version des phpmailers zu sein die nicht richtig funktioniert. Warum und wieso keine Ahnung hab mich nicht genauer damit beschäftigt

Auch dort trat das Problem nur sporadisch auf manchen Seiten auf und zudem hat nicht jeder den html code erhalten sondern manche auch leere E-Mails (liegt dann vermutlich am client)

mfg

chris
 
Ist in den Mails wirklich nach jeder Zeile im Mail-Header eine Leerzeile? Denn die darf nur zwischen Header der Mail und dem eigentlichen Text sein. Wenn da wirklich eine Leerzeile ist, steht nur das From: im Header und der Rest wird als Text interpretiert.
 
hi

deine mails kommen mir aus dem beexscript bekannt vor. Dort war vor kurzem das gleiche Problem. Wir haben dann eine ältere Version eingespielt und dann ging das ganze wieder. Scheint die neue Version des phpmailers zu sein die nicht richtig funktioniert. Warum und wieso keine Ahnung hab mich nicht genauer damit beschäftigt

Auch dort trat das Problem nur sporadisch auf manchen Seiten auf und zudem hat nicht jeder den html code erhalten sondern manche auch leere E-Mails (liegt dann vermutlich am client)

mfg

chris

Das wars! Ich hab eine ältere Version hochgeladen und es funktioniert einwandfrei :)

Danke euch allen für die hilfe :)

Mfg Raze