[PHP] Wyciąganie treści wiadomości z e-maila

0

Mam e-mail wyciągnięty ze skrzynki w formacie mbox. Ze wszystkimi nagłówkami i potrzebuję dostać samą treść.

Wygląda to tak (każda nowa linia to \n):

From [email protected] Sun Dec 2 00:00:13 2007
Return-Path:
X-Original-To: ktos@leia
Delivered-To: [email protected]
Received: from leia (leia.local [127.0.0.1])
by leia.tcp80.info (Postfix) with ESMTP id D48DC1F88A
for ; Sun, 2 Dec 2007 00:00:12 +0100 (CET)
Received: (from ktos@localhost)
by leia (8.13.1/8.13.1/Submit) id lB1N08S9030781;
Sun, 2 Dec 2007 00:00:08 +0100
Date: Sun, 2 Dec 2007 00:00:08 +0100
Message-Id: <200712012300.lB1N08S9030781@leia>
From: [email protected] (Cron Daemon)
To: [email protected]
Subject: Bug in doing something strange

Some bug additional information
Additional information second line
[tutaj pusta linia jeszcze]

Za subjectem mogą być dalej nagłówki, więc odpada wyszukiwanie po tym. Nie mam pomysłu na żadne wyrażenie regularne, które mi np. usunie wszystko przed treścią czy coś takiego. Kto pomoże?

0

Moze poszukaj pierwszego wystapienia 2x\r\n? Czy tam \n.

0

dokładnie, wyszukuj w tym przypadku 2x \n, to jest w standardzie - nagłówki od treści separuje jedna pusta linia i pro programy tak właśnie robią

0

Tak więc preg_replace('/([\s]+\n)+\n/', '', $mail) powinny wystarczyć :).

0

E tam regexpy. To jest taki banał, że nie ma co ich stosować, ale miałem chyba nagłe zaćmienie umysłowe.

Po prostu:

strstr($message, "\n\n")
0

Fakt... Niestety trochę dopadła mnie choroba regexpiarzy :P. Jak coś się da zrobić regexpem, to nieraz nie zastanowię się nad bardziej optymalnym rozwiązaniem...

1 użytkowników online, w tym zalogowanych: 0, gości: 1