|
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
florianp Neuer User
Anmeldungsdatum: 15.08.2005 Beiträge: 2
|
15.08.2005 17:01 [HowTo] Lesebaren Text einer Multipart-Mail auslesen. |
|
|
Vielleicht hat noch jemand das gleiche Vorhaben wie ich: aus einer eMail den puren Nachrichten-Text extrahieren, wobei Attachments und alternative HTML-Parts ignoriert werden.
Folgende Funktion parst alles Teile der Mail rekursiv und liefert bei "multipart/alternative" nur jeweils die erste Alternative zurück. Der Inhalt von "mulipart/digest"-Mails wird direkt untereinander aufgelistet.
Freue mich über Kommentare, Kritik und Verbesserungsvorschläge...
| PHP: | <?php function get_body_plain($obj,$params='') {
static $return;
if (is_object($obj)) {
if (strtolower($obj->ctype_primary)=='multipart' && strtolower($obj->ctype_secondary)=='digest') {
// if object is a mail digest, parse each part of the digest recursivly
while(list($key,$value) = each($obj->parts)) {
$decoder = new Mail_mimeDecode($value->body);
get_body_plain($decoder->decode($params),$params);
}
}
// if object has 'readable' body text, attach to output
if (strtolower($obj->ctype_primary=='text')) {
$return .= strip_tags(preg_replace('=<br */?>=i', "\n", $obj->body));
}
else {
// if object has no 'readable' body text, parse object recursivly
get_body_plain(get_object_vars($obj),$params);
}
}
else {
if (is_array($obj)) {
// if this is part of 'multipart/alternative', only parse the first one
if (strtolower($obj['ctype_secondary'])=="alternative") {
get_body_plain($obj['parts'][0],$params);
}
else {
// otherwise parse array values recursivly
while(list($key,$value) = each($obj)) {
get_body_plain($value,$params);
}
}
}
}
return $return;
} |
| PHP: | <?php $params['include_bodies'] = true;
$params['decode_bodies'] = true;
$params['decode_headers'] = true;
// assuming $email contains MIME-Mail
$decoder = new Mail_mimeDecode($email);
$structure = $decoder->decode($params);
echo get_body_plain($structure,$params); |
PS: Manchmal findet man im Netz Code-Schnippsel, die angeblich alle Parts einer MIME-Mail extrahieren. Oft wird dort jedoch nur die "erste Ebene" berücksichtigt, was natürlich nicht funktioniert, da Mulitpart-Messages im Prinzip ja beliebig tief geschachtelt sein können... |
|
| Nach oben |
|
 |
ragtek Neuer User
Anmeldungsdatum: 30.12.2006 Beiträge: 8
|
30.12.2006 21:09 |
|
|
| und wie kommst du an die mail rann? |
|
| Nach oben |
|
 |
|
|
|
Zu Deinen Favoriten hinzufügen
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum herunterladen
|
|