Home > php > Zend_Mail_Storage_Pop3 verschluckt Umlaute im Subject

Zend_Mail_Storage_Pop3 verschluckt Umlaute im Subject

August 18th, 2009

Das verarbeiten von E-Mail ist und bleibt eine Qual. Es gibt meines Wissens nach keine Klasse die einem Webentwickler die Tücken beim empfangen und verarbeiten von E-Mails abnimmt. Zend_Mail_Storage_Pop3 hat mich heute auch auf Trab gehalten, kamen doch plötzlich Mails ohne Umlaute an. Nicht wie üblich verratschebammelt, sondern gar keine. Nichts.

Die Lösung liegt in der Verwendung der Raw Header Daten. Das heisst nach meinem Verständis, dass die Klasse schon in der Lage ist die Mails korrekt zu empfangen, aber unter bestimmten Umständen (ich vermute unterschiedliche Zeichensätze in den Headern), verschluckt Sie einfach die Umlaute im Subject. Somit wird die Eigenschaft $message->subject relativ nutzlos, denn woran soll mein Script merken dass die Umlaute fehlen…?

Hier nun der Code zum Problem:

$mail = new Zend_Mail_Storage_Pop3(array('host'     => $email_host,
                                         'user'     => $email_username,
                                         'password' => $email_password));
 
 
foreach ($mail as $num => $message) {
	// Plötzlich waren die Umlaute verschluckt
	echo $message->subject ; 
	// Mglicherweise berraschend, hnliches hatte ich noch nicht
 
 
	// Die Lösung in diesem Fall
	$header = $mail->getRawHeader($num);
	$lines = explode("\r\n", $header);
	foreach($lines as $line){
		if(substr($line, 0, 8) == "Subject:"){
			$subject = substr($line, 8);
		}
	}
	echo $subject;
	// Möglicherweise überraschend, ähnliches hatte ich noch nicht	
}

Ich würde mich wirklich freuen, wenn mich jemand auf eine Klasse aufmerksam macht, die es erlaubt eingehende Mails korrekt zu verarbeiten. Eine Klasse, egal welche Sprache…ohne dass ich mich als Benutzer noch um Zeichsatz und Encoding-HickHack kümmern muss ;-) Ja, das wäre was…

In diesem Zusammenhang:

  1. E-Mail mit Anhang über PHP 4 versenden Immer wieder stößt man auf Server bzw. Webseiten die noch...
  2. SMPT 450 : Sender address rejected: Domain not found Diese kleine böse Falle hat mich gerade locker eine Stunde...
  3. Ein paar SOAP Notizen Oftmals ist es so dass ein SOAP Client die Daten...

php

  1. No comments yet.
  1. No trackbacks yet.