POP3-Postfach auslesen OHNE imap
Moin Moin,
ich möchte gerne ein Script anfertigen, mit dem ich ein Mail aus einem POP3-Postfach auslesen kann. Das ganze aber ohne die IMAP-Funktionen, da mein Provider kein IMAP unterstützt. Zweck des Ganzen ist es, die ausgelesen Mails automatisch weiterzuleiten. Ich habe mit den Socket-Funktionen (fget, fsockopen, usw) schon etwas rumexperimentiert und bin jetzt soweit, daß ich den Adressaten, den Absender, das Datum und auch den Betreff aus dem Header auslesen kann. Zum Test lasse ich die Daten erstmal auf dem Bildschirm anzeigen. Aber weiterhin hängt es. Ich bekomme es einfach nicht hin, den eigentlichen Mailtext auszulesen. Kann mir hier bitte eine(r) helfen?
Und hier, was ich schon gemacht habe (baut teilweise auf gefundenem aus dem Internet auf / statt den Sternchen stehen im Original natürlich die richtigen Daten):
<?php
$fp = fsockopen("mail.***************.de", 110); echo fgets($fp, 1024).'<br>';
$user_name = "pop.**************.de.002"; $user_pass = "********";
fputs($fp, "USER $user_namern"); echo fgets($fp, 1024).'<br>';
fputs($fp, "PASS $user_passrn"); echo fgets($fp, 1024).'<br>';
fputs($fp, "RETR 1rn");
echo '<br>';
// Header auslesen
for(;;)
{
$buffer=fgets($fp,1024);
if(strcasecmp(substr($buffer,0,5),"Date:")==0)
{
$maildate=substr($buffer,6,strlen($buffer)-6);
}
if(strcasecmp(substr($buffer,0,5),"From:")==0)
{
$fromperson=substr($buffer,6,strlen($buffer)-6);
$fromperson=htmlspecialchars($fromperson);
}
if(strcasecmp(substr($buffer,0,3),"To:")==0)
{
$toperson=substr($buffer,4,strlen($buffer)-4);
$toperson=htmlspecialchars($toperson);
}
if(strcasecmp(substr($buffer,0,8),"Subject:")==0) {
$subject=substr($buffer,9,strlen($buffer)-9);
$subject=htmlspecialchars($subject);
}
if(strcmp($buffer,"rn")==0 || strcmp($buffer,"nr")==0 || strcmp($buffer,"nn")==0 && $maildate!=0 && $subject!=0 && $fromperson!=0)
{
break;
}
}
// Header ausgeben
print("Subject: ".$subject."<br>");
print("To : ".$toperson."<br>");
print("From : ".$fromperson."<br>");
print("Date : ".$maildate."<br>");
fputs($fp, "QUITrn"); $line = fgets($fp, 1024);
fclose($fp);
?>
__________________
****************************************
Always walk on the bright (web-)site of life!
****************************************
|