Hallo,
ich habe ein Script um Emails von meinem POP3 Server auszulesen. Dieses Script funktioniert auch hervorragend mit einer kleinen Ausnahme. Wenn mir zum Beispiel jemand von einem GMX Account eine Mail mit dem Absender in der Form "Vorname Nachname <vorname.nachname@gmx.de>" schickt, dann erhalt ich als Absender immer nur "Vorname Nachname" und nicht die Email Adresse. Kann mir jemand helfen.
Hier ist mein Script:
ich habe ein Script um Emails von meinem POP3 Server auszulesen. Dieses Script funktioniert auch hervorragend mit einer kleinen Ausnahme. Wenn mir zum Beispiel jemand von einem GMX Account eine Mail mit dem Absender in der Form "Vorname Nachname <vorname.nachname@gmx.de>" schickt, dann erhalt ich als Absender immer nur "Vorname Nachname" und nicht die Email Adresse. Kann mir jemand helfen.
Hier ist mein Script:
PHP-Code:
<?php
class pop3 {
var $strStatus;
var $pop3;
var $arrMessages;
var $arrMessage;
function pop3 () {
$this->strStatus = array();
$this->pop3 = 0;
$arrMessages = $arrMessage = '';
}
function open($strServer, $intPort = 110) {
$this->pop3 = fsockopen($strServer, $intPort);
if (!is_resource($this->pop3)) return FALSE;
$line = fgets($this->pop3, 1024);
return $this->getresult($line);
}
function user($strUser) {
fputs($this->pop3, "USER $strUser\r\n");
$line = fgets($this->pop3, 1024);
return $this->getresult($line);
}
function pass($strPass) {
fputs($this->pop3, "PASS $strPass\r\n");
$line = fgets($this->pop3, 1024);
return $this->getresult($line);
}
function mess() {
fputs($this->pop3, "LIST\r\n");
$line = fgets($this->pop3, 1024);
if ($this->getresult($line)) {
unset($this->arrMessages);
while(substr($line = fgets($this->pop3, 1024),0,1) != '.')
{
$this->arrMessages[] = $line;
}
return TRUE;
} else {
return FALSE;
}
}
function retr($strMessage) {
list($intMessage) = explode(' ', $strMessage);
fputs($this->pop3, "RETR $intMessage\r\n");
$line = fgets($this->pop3, 1024);
if ($this->getresult($line)) {
unset($this->arrMessage);
while(substr($line = fgets($this->pop3, 1024), 0 ,1) != '.') {
$this->arrMessage[] = $line;
}
return TRUE;
} else {
return FALSE;
}
}
function dele($intMessage) {
fputs($pop3, "DELE $intMessage\r\n");
$line = fgets($pop3, 1024);
return TRUE;
}
function quit() {
fputs($this->pop3, "QUIT\r\n");
$line = fgets($this->pop3, 1024);
return $this->getresult($line);
}
function getresult($line)
{
$this->strStatus = substr($line, 0, 1024);
if (substr($this->strStatus, 0, 1) != '+') {
return FALSE;
} else {
return TRUE;
}
}
function showresult()
{
echo '<code style="color:red">';
print_r($this->strStatus);
echo '</code><br>';
}
} /* end class pop3 */
$mybox = new pop3;
$popserver = ''pop.server.de;
$username = "username";
$password = "passwort";
echo 'Verbindung: ';
$error = FALSE;
while (TRUE)
{
if (!$mybox->open($popserver)) {
echo "[FEHLER] Verbindung nicht möglich<br>\n";
$mybox->showresult();
$error = TRUE;
break;
} else {
echo "erfolgreich<br>\n";
$mybox->showresult();
}
echo 'Benutzername: ';
if (!$mybox->user($username)) {
echo "[FEHLER] Benutzername nicht erkannt!<br>\n";
$mybox->showresult();
$error = TRUE;
break;
} else {
echo "erfolgreich angemeldet<br>\n";
$mybox->showresult();
}
echo 'Kennwort: ';
if (!$mybox->pass($password)) {
echo "[FEHLER] Kennwort falsch!<br>\n";
$mybox->showresult();
$error = TRUE;
break;
} else {
echo "akzeptiert<br>\n";
$mybox->showresult();
}
echo 'Nachrichten: ';
if (!$mybox->mess()) {
echo "[FEHLER] Abruf fehlgeschlagen!<br>\n";
$error = TRUE;
break;
} else {
echo 'erfolgreich <b>' . count($mybox->arrMessages) . "</b> gelesen<br>\n";
$mybox->showresult();
}
break;
} /* end while */
echo '<hr noshade size="2">';
if (!$error and is_array($mybox->arrMessages)) {
foreach($mybox->arrMessages as $strMessage) {
echo "<b>Nachricht [$strMessage]</b>:<br>\n";
if ($mybox->retr($strMessage)) {
foreach($mybox->arrMessage as $strData) {
echo "$strData<br>";
}
} else {
$mybox->showresult();
}
echo '<hr noshade size="2">';
} /* end foreach */
}
?>
Kommentar