webmail problem

alexbaune

Grünschnabel
Hallo ich habe eine Webmailer gemacht es funktioniert auch alles soweit nur wenn ich eine html email bekommen gibt es den vollen code aus wie mache ich das das die email richtig ausgegeben wird und wenn sie einen Anhang hat auch der Anhang richtig ausgegeben wird?
 
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;
}
?>
 
Du musste den richtigen header für HTML formatierte Mails angeben:

PHP:
<?php
$time_out=0;
include("../../data/sql.inc.php");
$empfaenger=array();
$aa=mysql_query("SELECT * FROM user ORDER BY user_id ASC");
{
for($i=0;$i<100000000 && ($ab=mysql_fetch_array($aa));$i++){
$empfaenger[]= $ab[user_email];
}
}


for($i=0;$i<count($empfaenger)+1;$i++)
{



$nachricht = stripslashes("$textarea");

$an ="$empfaenger[$i]";
$betreff = "$aubr";

$xtra = "From: support@2ts2.net (Webmaster)\r\n";
$xtra .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
$xtra .= "X-Mailer: PHP ". phpversion();

@mail($an, $betreff, $nachricht, $xtra);
}


echo "NEWSLETTER WURDE VERSENDET!
";
?>

Leg zuvor in die Variable textare dein HTML Template
 
Zurück