phpbar.de logo

Mailinglisten-Archive

[php] mailbot

[php] mailbot

Michael Borchers borchers at tridem.de
Don Dez 16 15:19:34 CET 2004


habe folgendes skript (unten) gefunden,
brauche es für eine mailingliste.
abgefangen werden subject, from, to etc. pp.
und daraufhin versende ich die emails an einen verteiler via mail.

das einzige problem sind einige oft überflüssige header infos
wie
This is a multi-part message in MIME format.

>
------=_NextPart_000_0005_01C47697.8D06F840
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable


------=_NextPart_000_0005_01C47697.8D06F840
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<

usw.
wie kann ich diese am besten filtern,
oder kennt jmd einen guten mailbot
(eintragen in die mailing list via subscribe at ...)
mit php und mysql?
möchte gerne die mails in der db archivieren
und alles auf meinem eigenen server laufen lassen
ohne andere skriptsprachen oder majordomo o.ä.

danke



// read from stdin
$fd = fopen("php://stdin", "r");
$email = "";
while (!feof($fd)) {
    $email .= fread($fd, 1024);
}
fclose($fd);


// handle email
$lines = explode("\n", $email);

$splittingheaders = true;

for ($i=0; $i<count($lines); $i++)
{
    if ($splittingheaders)
	{
        // this is a header
        $headers .= $lines[$i]."\n";

        // look out for special headers
        if (preg_match("/^Subject: (.*)/", $lines[$i], $matches))
		{
            $subject = $matches[1];
        }
        if (preg_match("/^From: (.*)/", $lines[$i], $matches))
		{
            $from = $matches[1];
        }
        if (preg_match("/^To: (.*)/", $lines[$i], $matches))
		{
            $to = $matches[1];
        }
    }
	else
	{
        // not a header, but message
        $message .= $lines[$i]."\n";
    }

    if (trim($lines[$i])=="")
	{
        // empty line, header section has ended
        $splittingheaders = false;
    }
}

php::bar PHP Wiki   -   Listenarchive