Próbuję przesłać przychodzące wiadomości e-mail do skryptu PHP, aby móc je przechowywać w bazie danych i innych rzeczach. Używam klasy MIME E-mail message parser (registration required), chociaż nie sądzę, że to ważne.Właściwy sposób dekodowania tematu wiadomości przychodzących (utf 8)
Mam problem z tematami wiadomości e-mail. To działa dobrze, gdy tytuł jest w języku angielskim, ale jeśli przedmiotem wykorzystuje znaki spoza alfabetu łacińskiego uzyskać coś podobnego
=?UTF-8?B?2KLYstmF2KfbjNi0?=
o tytuł jak یک دو سه
I zdekodować przedmiot takiego:
$subject = str_replace('=?UTF-8?B?' , '' , $subject);
$subject = str_replace('?=' , '' , $subject);
$subject = base64_decode($subject);
Działa dobrze na krótkich tematach z 10-15 znakami, ale z dłuższym tytułem otrzymuję połowę oryginalnego tytułu z czymś podobnym na końcu.
Jeśli tytuł jest dłuższy, np. 30 znaków, nic nie dostaję. Czy robię to dobrze?
To nie jest oprogramowanie najwyższej jakości, które wybrałeś. Sprawdź http://stackoverflow.com/questions/4721410/best-way-to-handle-email-parsing-decoding-in-php, prawdopodobnie wszyscy wykonują dekodowanie i nie wymagają takich hacków. – mario