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

|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |

03.03.2005, 12:35:52
|
Anfänger
|
|
Registriert seit: Mar 2005
Alter: 63
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!
****************************************
|

03.03.2005, 14:21:01
|
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_handle, 512);
$header=true;
while (substr($line = fgets($pop3_handle, 512), 0, 1) != ".") {
if(!$header){
if(strtolower($content_transfer_encoding)=="quoted-printable"){
$line2=$line;
$line="";
do{
if(substr($line2,0,1)=="="){
$line=$line. chr(hexdec(substr($line2,1,3)));
$line2=substr($line2,3);
}else{
$line=$line. substr($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...
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:48:41 Uhr.
|