Welche Content-Transfer-Codierung sollte ich verwenden, wenn ich eine PHP-Mail () mit einem langen http-Link sende?

8

Ich habe ein Skript, das E-Mails sendet, die so aussehen:

%Vor%

Es wurde gründlich getestet, aber einige Benutzer, ich denke Outlook-Benutzer, erhalten eine URL, die folgendermaßen aussieht: Ссылка Auf die Gleichheitszeichen folgt jetzt "3D", was die URL in meinem Fall nutzlos macht. Ich denke, das hat etwas mit dem Content-Transfer-Encoding oder vielleicht dem Inhaltstyp zu tun, muss ich die Body-Nachricht zu base64 oder etwas codieren?

Aktualisieren

Habe gerade diesen Forenbeitrag gefunden: Ссылка Also habe ich das Content-Transfer-Encoding entfernt und es scheint gut zu funktionieren, aber andererseits konnte ich den Fehler, wo die URL den "3D" -Text enthielt, nie reproduzieren, so dass ich nicht sicher sein kann, dass das funktioniert. Weiß jemand, ob das Entfernen der Content-Transfer-Codierung mein Problem lösen würde?

    
Richard B 01.04.2012, 20:34
quelle

1 Antwort

3

Dies wird in Ihrer Frage nicht erwähnt, aber die =3D ist eine Escape-Sequenz des zitierten druckbaren Übertragung Codierung; Es wird verwendet, um 8-Bit-Daten unter Verwendung einer 7-Bit-Codierung sicher zu übertragen.

Es gibt immer noch Mail-Server, die keine Zeilen länger als 76 Spalten mögen, und Zwischenserver können Ihre Nachricht beschädigen, ohne die Nachrichtenköpfe zu aktualisieren, was zu dem beobachteten Verhalten führt.

Seit 5.3.0 können Sie quoted_printable_encode() verwenden, um Ihre Nachricht zu codieren und den Content-Transfer-Encoding-Header entsprechend zu setzen:

%Vor%

Das Setzen einer expliziten Transfercodierung ist eine gute Übung, die Sie anwenden sollten, anstatt einen naiven "irgendwie funktioniert es" -Ansatz:)

    
Ja͢ck 20.01.2014 06:40
quelle

Tags und Links