datei readmail:
<?php
// *** readmail.php: Spezifizierte Nachricht anzeigen
include("stdinc.php");
include("connect.php");
if ($pop_connection) {
html_open("Nachricht lesen");
if ($msg_text = getmessage($pop_connection, $msg_id, -1)) {
$msg_from = htmlspecialchars(header_get($msg_text, "From:"));
$msg_date = header_get($msg_text, "Date:");
$msg_subject = header_get($msg_text, "Subject:");
echo "Von: $msg_from<br>";
echo "Datum: $msg_date<br>";
echo "Betreff: $msg_subject<br>";
$pos_start = strpos($msg_text, "\n\r") + 3;
$msg_body = substr($msg_text, $pos_start);
echo "<br>" . nl2br(htmlentities($msg_body));
echo "<br>";
echo "<a href=\"reply.php?log=$log&msg_id=$msg_id\">Antworten</a>";
echo " - <a href=\"forward.php?log=$log&msg_id=$msg_id\">Weiterleiten</a>";
echo " - <a href=\"delete.php?log=$log&msg_id=$msg_id\">Löschen</a>";
} else {
echo "Fehler: Mail konnte nicht geöffnet werden.";
}
fputs($pop_connection, "QUIT\r\n");
fclose($pop_connection);
echo "$link_inbox $link_newmail";
}
html_close();
?>
datei connect:
<?php
//Test Variabel Später aus DB
$pop_server = "pop3.test.de";
$pop_user = "user";
$pop_pw = "pass";
$email = "email";
if ($pop_server) {
$link_inbox = "<br><br><a href=\"inbox.php?log=$log\">Zum Postfach</a>";
$link_newmail = "<br><br><a href=\"newmail.php?log=$log\">Neue Nachricht</a>";
}else {
echo "Sie haben noch nicht ihre POP3 adresse eingerichtet!";
}
if ($pop_server && !$no_pop) { // Benutzer angemeldet, POP Verbindung benötigt
// Verbindung zum POP-Server aufbauen
$port = 110; // Standard
$pop_connection = fsockopen($pop_server,$port,&$error_no,&$error_desc);
if (!$pop_connection) { // Verbindung fehlgeschlagen
html_open("Verbindungsfehler");
echo "Es konnte keine Verbindung zum Server hergestellt werden:<br>\n";
echo "Fehler #: $error_no<br>\n$error_desc";
} else { // Verbindung zum Server besteht, Benutzerdaten senden
// Willkommensnachricht prüfen
fgets($pop_connection, 512);
fputs($pop_connection, "USER $pop_user\r\n");
fgets($pop_connection, 512);
fputs($pop_connection, "PASS $pop_pw\r\n");
$buffer = fgets($pop_connection, 100);
if (substr($buffer, 0, 3) != "+OK") {
html_open("Loginfehler");
echo "Der Mailserver hat den Login nicht akzeptiert.<br>";
echo "Fehler: " . substr($buffer, 4);
fclose($pop_connection);
$pop_connection = "";
}
}
}
?>
Datei stdinc.php
<?php
// *** stdinc.php: Standard-Include Datei für Funktionen
// HTML-Kopf entwerfen
function html_open($caption) {
// Mitteilen, dass Seite nicht zwischengespeichert werden soll
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
echo "<html>\n<head><title>\n";
echo "PHP-Mail: " . $caption . "\n";
echo "</title></head>\n";
echo "<body><h2>$caption</h2><br>\n";
}
// HTML Bereich schließen
function html_close() {
echo "</body></html>";
}
// Eigenschaft $value aus Header von $msg_text suchen
function header_get($msg_text, $value) {
$pos_start = strpos($msg_text, "\n$value") + strlen($value) + 2;
$pos_end = strpos($msg_text, "\n", $pos_start);
$length = $pos_end - $pos_start - 1;
return substr($msg_text, $pos_start, $length);
}
// Nachricht $msg_id vom Server abholen
function getmessage($pop_connection, $msg_id, $lines) {
if ($lines < 0)
fputs($pop_connection, "RETR $msg_id\r\n");
else
fputs($pop_connection, "TOP $msg_id $lines\r\n");
$buffer = fgets($pop_connection, 512); // OK Nachricht
if (substr($buffer, 0, 3) == "+OK") {
while (($buffer = fgets($pop_connection, 512)) != ".\r\n") {
$msg_text = $msg_text . $buffer;
}
}
return $msg_text;
}
?>