Lima-City Postfach auslesen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfragen
array
bad
break
code
dank
email
host
index
list
log
match
message
pop
port
postfach
see
server
switch
url
-
Hallo erstmals,
Ich google, nutze die LC Suchfunktion und probiere jetzt schon seit geschlagenen 2 Stunden, ob man irgendwie das Lima-City Postfach abfragen kann.
Ich versuche es derzeit mit folgenden Code:
$server = "{mail.lima-city.de}INBOX"; $user = "admin@askarian.net"; $passwd = "...pwd..."; $MailboxPointer = imap_open($server, $user, $passwd); if($MailboxPointer) { //ANZEIGEN DER EMAILS imap_close($MailboxPointer); } else { echo "Keine Verbindung zum Mail-Postfach!"; }
Ich kriege aber immer: Keine Verbindung zum Mail-Postfach!
Was soll ich tun?
Ich habe gehört, dass es die imap_open Funktion nicht mehr auf LC gibt.
Danke im Vorraus
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Meinst du damit:
$fp=fsockopen("mail.hostname.de",110); if ($fp) { echo fgets ($fp, 1024)."<br>"; $user="benutzer"; $passwort="pass"; fputs ($fp, "USER $user"); echo fgets ($fp, 1024) . "<br>"; fputs($fp, "PASS $passwort"); echo fgets ($fp, 1024) ."<br>"; fputs ($fp, "STAT"); echo "STATUS:". fgets ($fp, 1024) . "<br>"; fputs ($fp, "LIST"); echo "LISTE:" . fgets ($fp, 2048) . "<br>"; fputs ($fp, "RETR"); echo "retr:" . fgets ($fp, 2048) . "<br>"; fputs($fp, "QUIT"); echo "verlassen:" . fgets($fp, 1024) ."<br>"; fclose($fp); }
???
Ich hab es noch nicht getestet, weil ich derzeit am anderen Rechner sitze. -
Da mich das Theam auch interessiert habe ich mit dieser Klasse:
und diesem aufrufendem Skript:<?php /* Really generic POP class, instead of using IMAP/SOCKETS */ class pop { ##################### ## Class Variables ## ##################### var $username = ""; var $password = ""; var $host = ""; var $port = ""; var $pop_connect = ""; var $log = ""; var $delete = "0"; ############################# ## Used to create new clas ## ############################# function pop ( $user, $pass, $host = "127.0.0.1", $port = "110" ) { if ( $user == "" ) { return 0; } if ( $pass == "" ) { return 0; } if ( $host == "" ) { return 0; } $this->port = $port; $this->username = $user; $this->password = $pass; $this->host = $host; return 1; } ################################## ## Connect to your pop server, ## ## return how many messages, or ## ## an error code ## ################################## function connect () { $this->pop_connect = fsockopen($this->host, $this->port, $error_number, $error_string, 30); if ( !$this->pop_connect ) { echo "$error_string ($error_number)<br>\n"; return -1; } $results = $this->_read(); if ( $this->_check($results) ) { $this->_write("USER $this->username"); $results = $this->_read(); if ( $this->_check($results) ) { $this->_write("PASS $this->password"); $results = $this->_read(); if ( $this->_check($results) ) { return $this->_howmany($results); } else return -4; } else return -3; } return -2; } ################################## ## Check to see how many emails ## ## there are in your inbox ## ################################## function _howmany () { $this->_write("STAT"); $results = $this->_read(); list ( $results, $messages, $bytes ) = split(" ", $results); return $messages; } #################################### ## check to make sure it returned ## ## an "OK" from server ## #################################### function _check ( $results ) { if ( preg_match("/\+OK/", $results) ) return 1; else return 0; } ################################## ## Used to read from connection ## ################################## function _read ( $bytes = 128 ) { $results = ""; $results = fread($this->pop_connect, $bytes); $this->log .= $results; return $results; } ################################# ## Used to write to connection ## ################################# function _write ( $message ) { $this->log .= $message . "\n"; fwrite($this->pop_connect, $message . "\n"); } #################################### ## Lets see this log we have made ## #################################### function showlog () { return $this->log; } ################################# ## By default, it won't delete ## ## any e-mails stored. If you ## ## want to, just call this ## ## function. ## ################################# function delete () { $this->delete = "1"; } ################################## ## Returns the email, including ## ## headers and body back in an ## ## array ## ################################## function getmessage ( $id ) { $this->_write("RETR $id"); $body_len = $this->_read(); preg_match_all("/([0-9]+)/", $body_len, $matches); $length = $matches[0][0]; if ( $length <= 1024 ) $email = $this->_read($length); else { list($loop, $dec) = split("\.", $length / 1024); for ( $i = 0; $i < $loop; $i++ ) $email .= $this->_read(1024); if ( $dec ) { $read = 1024 * $loop; $length = $length - $read; $email .= $this->_read($length); } } if ( $this->delete ) { $this->_write("DELE $id"); $results = $this->_read(); } list($headers, $body, $end) = split("\r\n\r\n", $email); $email = ""; $array = split("\n", $headers); $count = count($array); for ( $i = 1; $i < $count; $i++ ) { if ( preg_match("/: /", $array[$i]) ) { list($index, $contents) = split(":", $array[$i]); $index = strtolower($index); $email[$index] = $contents; $contents = ""; } else { $contents = trim($array[$i]); $email[$index] .= $contents . "\n"; $contents = ""; } } $email["body"] = $body; return $email; } ################################## ## Disconnects from your server ## ################################## function disconnect () { $this->_write("QUIT"); $this->_read(); } } ?>
getestet. Skripte gefunden auf http://www.flashhilfe.de/forum/php-und-mysql/emails-abfragen-mit-pop3-klasse-294298-294298.html Ausgegeben wird die Anzahl der EMails und für jede EMail ein Array:<?php include("pop.php"); error_reporting(E_ALL); ini_set('display_errors', 1); $username = "MyName@autobert.de"; $password = "TopSecret"; $host = "mail.autobert.de"; $conn = new pop($username, $password, $host); $messages = $conn->connect(); switch ( $message ) { case "-1": echo "Can't connect to server $server"; break; case "-2": echo "Can't read anything from server?"; break; case "-3": echo "Bad User!"; break; case "-4": echo "Bad Password!"; break; default: echo "Sie haben $messages E-Mail(s) <br>\n"; echo "<br>\n"; for ($i = 1; $i <= $messages; $i++) { echo "<b>Email " . $i . "</b><br/>"; $message = $conn->getmessage($i); print_r($message); echo "<br/><br/>"; } $conn->disconnect(); break; } ?>
Array ( [] => by mail.lima-city.de (Postfix) with SMTP id E964480924FC for ; Wed, 22 Feb 2012 05:19:57 +0100 (CET) [received] => from **** ([xx.xxx.42.111]) by smtp.web.de (mrweb001) with ESMTPA (Nemesis) id 0Ls9JH-1SSPBx32vn-013pkb; Wed, 22 Feb 2012 05:19:51 +0100 [thread-index] => AczxGS5ylHg5cT3TQpCGInrgVzSTKQ== [thread-topic] => Userinfo [from] => "bert" [to] => [subject] => Userinfo [date] => Wed, 22 Feb 2012 05 [message-id] => <775A0AEC381A4E38A20B6AAB14DA7A1D@ALDI> [mime-version] => 1.0 [content-type] => text/plain [content-transfer-encoding] => 7bit [x-mailer] => Microsoft CDO for Exchange 2000 [content-class] => urn [importance] => Normal [priority] => normal [x-mimeole] => Produced By Microsoft MimeOLE V6.00.2900.6157 [x-provags-id] => V02Lxv7vqWvf8KTgt24kKv+Hv9eLozwzzdih3V77C2WGwTg+NaVw6 Y4Uaytcs9gOnlb2/DMijnzmBM9gKpnp84AgfKZbBaSPkLs5yMI jnV5AtHR8fjd8/Rmv80FiyHsGX6b5cBoZiGtNWCJYVfmZH4lqW vo1RPDWBBHa7AstezjtMw== [x-dspam-result] => Innocent [x-dspam-processed] => Wed Feb 22 05 [x-dspam-confidence] => 1.0000 [x-dspam-probability] => 0.0023 [x-dspam-signature] => 4f446ced38534412315416 [body] => Test-2 Dies ist die Nachricht)
Beitrag zuletzt geändert: 28.2.2012 8:42:24 von autobert -
Danke für das Script.
Hatte sowas noch nicht gefunden.
Ich werde es morgen einmal testen...
€: ist das:
$messages = $conn->connect();
switch ( $message ) {
so richtig? ich habe daraus mal eine Variable gemacht
€2: es funktioniert. Danke
Beitrag zuletzt geändert: 29.2.2012 16:46:31 von askarian -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage