Problem mit Gleichheitszeichen in HTML-Mail


sp1

Grünschnabel
Ich möchte ich mit einem PHP-Script eine HTML+Text-Mail (multipart/alternative) verschicken. Dabei tritt ein merkwürdiger Fehler auf :confused: Der HTML-Teil sieht wie folgt aus (Auszug):

$message .= "<p>Hallo! Dies ist der HTML-Teil.</p> <p><a href=\"".$url."\" ><img src=\"".$imageurl."\" border=\"0\"></a></p>";

Es soll also ein Bild in die Mail eingebunden werden. Im Mailclient von AOL (IMAP) wird die Mail inkl. Bild auch richtig dargestellt, aber wenn ich die Mail über einen anderen Account (POP3) empfange, werden immer 2 Zeichen nach dem Gleichheitszeichen abgeschnitten.

Der Quellcode in der empfangenen Mail sieht dann wie folgt aus:
<p>Hallo! Dies ist der HTML-Teil.</p> <p><a href=ttp://www.url.de" target=lank"><img src=ttp://www.url.de" border=" ></a></p>

Das Problem konnte ich leider nicht lokalisieren. Mag mir jemand helfen? Zur Info ein php.ini-Auszug:

magic_quotes_gpc On
magic_quotes_runtime Off
magic_quotes_sybase Off

Vielen Dank!
Steffen
 

-GS-Master

Erfahrenes Mitglied
Dachte mails werden auch mit Base64 Codiert ... oder bin ich da grad aufm falschen Dampfer?

// Edit:

Ach stimmt ja ... das HTML wird mit "quoted_printable" Codiert also die Mail an sich meine ich damit. Die Dateien die mal mit senden will mit Base64 ...
 
Zuletzt bearbeitet:

Gumbo

Erfahrenes Mitglied
Wahrscheinlich nimmt dein E-Mail-Programm an, dass der Inhalt Quoted-printable-kodiert ist, vielleicht hast du diese Information aber auch im Header stehen („Content-Transfer-Encoding“-Header-Feld) und das Verhalten des E-Mail-Programms ist berechtigt.
 

sp1

Grünschnabel
Ja, der Header sieht wie folgt aus:

Content-Type: text/html
Content-Transfer-Encoding: quoted-printable


Ich denke, da hast du mich schon auf die richtige Fehlerspur gebracht. Dankeschön!
 

-GS-Master

Erfahrenes Mitglied
So weit ich weiß, musst du noch diese hier irgendwo einfügen ...

eMail Zeichensatz: ISO-8859-1 (Latin-1, Westeuropa)
eMail Betreff Codierung: " "
eMail Text Codierung: quoted-printable
Dann Codiert er dir deine Mail mit "quoted-printable" und diese wird dann eben später vom eMail dienst wieder decodiert

Ja, der Header sieht wie folgt aus:

Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

Ich denke, da hast du mich schon auf die richtige Fehlerspur gebracht. Dankeschön!
Ist ein plötsin dies zu machen ... hast die mail ja noch nich mal Codieren lassen ... dass sagt aber dieser Header aus -.-
 

sp1

Grünschnabel
Tausend Dank! Auf diesen Fehler wäre ich allein niemals gekommen :) Jetzt funktioniert alles wie gewünscht
 

-GS-Master

Erfahrenes Mitglied
^^ Wusst ich auch nur, da ich mir mit PHP ein Script zum "Endarchivieren" von MHT-Verzeichnissen geschrieben habe ... dort war genau das selbe -.- wollt jetzt eigentlich ne Klasse fürs eMail versenden anbieten, aber naja :)

Hier noch ne Funtion aus der Klasse zum Encoden von quoted-printable
Vielleicht interessiert es ja jemanden

PHP:
    function EncodeQP ($str) {
        $encoded = $this->FixEOL($str);
        if (substr($encoded, -(strlen($this->LE))) != $this->LE)
            $encoded .= $this->LE;

        // Replace every high ascii, control and = characters
        $encoded = preg_replace('/([\000-\010\013\014\016-\037\075\177-\377])/e',
                  "'='.sprintf('%02X', ord('\\1'))", $encoded);
        // Replace every spaces and tabs when it's the last character on a line
        $encoded = preg_replace("/([\011\040])".$this->LE."/e",
                  "'='.sprintf('%02X', ord('\\1')).'".$this->LE."'", $encoded);

        // Maximum line length of 76 characters before CRLF (74 + space + '=')
        $encoded = $this->WrapText($encoded, 74, true);

        return $encoded;
    }
 
Zuletzt bearbeitet:

reporting

Grünschnabel
Hallo zusammen,
13 Jahre später habe auch ich dieses Problem oder ein ähnliches Problem.

Bei mir werden in der HTML Mail einfach in unregelmäßigen Abständen Buchstaben durch das Gleichheitszeichen ausgetauscht.

Es sieht ungefähr so aus:
Sehr geehrte =amen und Herren,
hier steht ein toller Text der ein=ach stellenweise durch ein Gleichhei=szeichen ersetzt wird.

Das Ganze ist se=r merkwürdig.
Ich nutze die Funktion "Mail" über Windows Server 2016.

Gibt es da inzwischen andere Lösungen?

Ich beschäftige mich leider erst seit einer Woche mit PHP (CodeIngniter) und bin deshalb noch sehr grün hinter den Ohren.

Viele Grüße

Johannes
 
Zuletzt bearbeitet:

Neue Beiträge