phpbar.de logo

Mailinglisten-Archive

[php] Threads aus Mails bilden

[php] Threads aus Mails bilden

Swiss4.com webmaster at swiss4.com
Mit Sep 17 14:17:01 CEST 2003


Hallo Dennis und David,

>
>: "Dennis Sterzenbach" <lists at darknoise.de>
>Sent: Wednesday, September 17, 2003 12:18 PM
>Subject: [php] Threads aus Mails bilden
>

> Hallo alle zusammen,
>
> ich habe vor kurzem ein einfaches Mailinglist Tool für mich
> und einen Freund entwickelt. Dieses setzt als PHP-Shell-Script
> auf einen MTA auf und empfängt Mails, die an eine bestimmte
> Adresse geschickt werden.
>
> snip snip ......
>
> Hat jemand von Euch eine bessere Idee, wie ich das Problem
> lösen könnte?
>
>
> Freue mich über jede Idee :)
>


Ich habe das vor einiger Zeit auch geamcht!
Das Problem zum Bilden eines Threads anhand des Subjects kann man elegant
mit einer SQL-Query beim Ausgeben der Resultate erzeugen. Dies wird wiederum
mit dem auslesen des Subjects mit like% gelöst und wird dann anhand des RE:
und der zeitlichen Reihenfolge sortiert.


>
>From: "David Danier" <goliath.mailinglist at gmx.de>
>
> Aber was anderes:
> Kannst du mir einen Tip geben, wie man die Headerfelder (To, From etc.)
> richtig ausliest? Grundsätzlich wollte ich das mit einem
preg_match()-Aufruf
> machen, da mir nun allerdings einige Email untergekommen sind, bei denen
z.B.
> das To-Feld mehrzeilig ausgefüllt ist fehlt mir etwas der passende
Regex-Code
> (irgendwie klappen alle Ansätze nicht).
>

Hab das so gelöst:


         while ( list ( $lineNum,$line ) = each ($MsgOne) )
         {
            if (eregi("^from:",$line))
            { $_from=substr($line,0,-2);
              $_from=substr($_from,strpos($_from,':')+1);
            }
            elseif (eregi("^subject",$line))
            { $_subject=substr($line,0,-2);
              $_subject=(substr($_subject,strpos($_subject,':')+1));
            }
            elseif (eregi("^date",$line))
            { $_date=substr($line,0,-2);
              $_date=(substr($_date,strpos($_date,':')+1));
            }
            elseif(eregi("^cc",$line))
            { $_cc=substr($line,0,-2);
              $_cc=(substr($_cc,strpos($_cc,':')+1));
            }
            elseif(eregi("^to",$line))
            {  $_to=substr($line,0,-2);
               $_to=(substr($_to,strpos($_to,':')+1));
            }
            $bodystart=$lineNum;
         }


Gruss
is










php::bar PHP Wiki   -   Listenarchive