Ich versuche, meine eingehenden Mails an ein PHP-Skript zu übergeben, damit ich sie in einer Datenbank und anderen Dingen speichern kann. Ich verwende die Klasse MIME-E-Mail-Nachrichtenparser (Registrierung erforderlich ) obwohl ich das nicht für wichtig halte.
Ich habe ein Problem mit E-Mail-Themen. Es funktioniert gut, wenn der Titel in Englisch ist, aber wenn das Thema nicht-lateinische Zeichen verwendet, bekomme ich etwas wie
%Vor%für einen Titel wie یک دو سه
Ich dekodiere das Thema so:
%Vor%Es funktioniert gut mit kurzen Fächern mit etwa 10-15 Zeichen, aber mit einem längeren Titel bekomme ich die Hälfte des Originaltitels mit etwas wie am Ende.
Wenn der Titel noch länger ist, wie 30 Zeichen, bekomme ich nichts. Mache ich das richtig?
Trotz der Tatsache, dass es fast ein Jahr alt ist - ich habe das gefunden und stehe vor einem ähnlichen Problem.
Ich bin mir nicht sicher, warum du seltsame Zeichen erhältst, aber vielleicht versuchst du, sie dort anzuzeigen, wo dein Zeichensatz nicht unterstützt wird.
Hier ist ein Code, den ich geschrieben habe, der alles außer der Zeichensatzkonvertierung behandeln sollte, was ein großes Problem ist, das viele Bibliotheken viel besser handhaben. (PHP MB-Bibliothek , zum Beispiel)
%Vor%Wenn Sie ein Skript ausführen und mit UTF-8 in einem Browser angezeigt werden, lautet das Ergebnis:
آزمایش
Sie würden es so ausführen:
%Vor% Sie können die Funktion mb_decode_mimeheader()
verwenden, um Ihre Zeichenfolge zu dekodieren.
Verwenden Sie die native PHP-Funktion
%Vor%Diese Funktion kann sowohl mit utf8 als auch mit iso-8859-1 string umgehen. Ich habe es getestet.
Würde die imap-mime-header-decode Funktion hier helfen?
Ich habe mich heute in einer ähnlichen Situation wiedergefunden.