SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 03.03.2005, 12:35:52
schimanski2 schimanski2 ist offline
Anfänger
 
Registriert seit: Mar 2005
Alter: 62
Beiträge: 1
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!
****************************************
Mit Zitat antworten
  #2  
Alt 03.03.2005, 14:21:01
didi86 didi86 ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 77
AW: POP3-Postfach auslesen OHNE imap

Hi,
ich bin gerade dabei, ein Webmail-Script zu schreiben, was bisher so aussieht:
PHP-Code:
@$pop3_handle=fsockopen($in_server_url[$i],$in_port[$i]);
if(!
$pop3_handle){
    echo (
"<span class="error">Verbindung zum Server konnte nicht hergestellt werden!</span>");
}else{
    
stream_set_timeout($pop3_handle,2);
    
//Einloggen
    
$connect=fgets($pop3_handle,512);
    
fputs($pop3_handle"user $in_user[$i]rn");
    
$user=fgets($pop3_handle,512);
    
fputs($pop3_handle"pass $in_pass[$i]rn");
    while(
$pass==""){
        
$pass=fgets($pop3_handle,512);
        
usleep(100000);
    }
    if(
substr($pass,0,3)!="+OK"){
        echo (
"<span class="error">Fehler beim Login: ".substr($pass,5)."</span>");
    }else{
        
fputs($pop3_handle"retr $mailrn");
        
$line fgets($pop3_handle512);
        
$header=true;
        while (
substr($line  =  fgets($pop3_handle512), 01) != ".") {
            if(!
$header){
                if(
strtolower($content_transfer_encoding)=="quoted-printable"){
                    
$line2=$line;
                    
$line="";
                    do{
                        if(
substr($line2,0,1)=="="){
                            
$line=$linechr(hexdec(substr($line2,1,3)));
                            
$line2=substr($line2,3);
                        }else{
                            
$line=$linesubstr($line2,0,1);
                            
$line2=substr($line2,1);
                        }
                    }while(
strlen($line2)>0);
                }
                if(
substr($content_type,0,10)=="text/plain" or $content_type==""){
                    
$message.="<br>rn";
                }
                
$message.=$line;
            }else{
                
//$message.="<br>rn".$line;    //Einkommentieren um Header in Mails mit anzuzeigen
                
if(strtolower(substr($line,0,6))=="status"){
                    
$header=false;
                }
                if (
strtolower(substr($line,0,5))=="from:"){
                    
$from=substr($line,6);
                }elseif (
strtolower(substr($line,0,8))=="subject:"){
                    
$subject=substr($line,9);
                }elseif (
strtolower(substr($line,0,5))=="date:"){
                    
$date=substr($line,6);
                }elseif (
strtolower(substr($line,0,26))=="content-transfer-encoding:"){
                    
$content_transfer_encoding=trim(substr($line,27));
                }elseif (
strtolower(substr($line,0,13))=="content-type:"){
                    
$content_type=trim(substr($line,14));
                }elseif (
strtolower(substr($line,1,9))=="boundary="){
                    
$boundary=substr(trim(substr($line,10)),1,-1);
                }
            }
        }
        if(
$content_type=="multipart/alternative;"){
            
$multipart=explode($boundary,$message);
            
$c=0;
            
$val=0;
            echo(
"Diese E-Mail liegt in folgenden Formaten vor: ");
            foreach(
$multipart as $m){
                if(
$c>0){
                    
$mline=explode("n",$m);
                    
$header=1;
                    
$content_type2="";
                    
$content_transfer_encoding="";
                    foreach(
$mline as $lline){
                        if(
$header==1){
                            if (
strtolower(substr($lline,0,13))=="content-type:"){
                                
$content_type2=trim(substr($lline,14));
                                echo(
$content_type2.", ");
                                if(
substr($content_type2,0,10)=="text/plain" and $val<2){
                                    
$message=$m;
                                    
$val=2;
                                }elseif(
substr($content_type2,0,9)=="text/html" and $val<3){
                                    
$message=$m;
                                    
$val=3;
                                }elseif(
$val<1){
                                    
$message=$m;
                                    
$val=1;
                                }
                            }elseif (
strtolower(substr($lline,0,26))=="content-transfer-encoding:"){
                                
$content_transfer_encoding2=trim(substr($line,27));
                                
$header=0;
                            }else{
                            }
                        }
                    }
                }
$c++;
            }echo(
"<br><hr width=100%>");
        }
        echo(
$message);
        
fputs($pop3_handle,"quitrn");
        
$antwort=fgets($pop3_handle,1024);
    }
fclose($pop3_handle);

Das Script kommt derzeit mit etwa der Hälfte meiner Mails klar und unterstützt noch keine Attachments...
__________________
http://schach.didi-site.de
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
IMAP, POP3 Funktionen helge008 PHP Grundlagen 2 27.09.2006 13:18:20
Imap HTML Bilder extrahieren michi84 PHP für Fortgeschrittene und Experten 0 11.10.2004 22:41:30
Pop3 auslesen... web-wg PHP für Fortgeschrittene und Experten 0 03.03.2004 14:20:49
Postfach einlesen Pommes2 PHP für Fortgeschrittene und Experten 0 07.06.2003 18:55:45
PHP Mail Und POP3 - Aber wie? enki PHP für Fortgeschrittene und Experten 6 31.05.2003 23:34:41


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:59:39 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt