PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HTML-Mail mit Textdatei Anhang


juergen
29.07.2006, 16:22:19
Hallo Forum,

ich habe mal wieder ein Problem. Ich möchte von meiner Webseite ein Formular ausfüllen und es anschließend als HTML-Mail zu mir senden. Das funktioniert auch recht gut. Nun möchte ich die Usereinträge in eine Textdatei schreiben und als Anhang an diese Mail versenden. Das funktioniert noch nicht. Die Userdaten bekomme ich in die Textdatei. Aber die Datei wird nicht als Anhang mit versand und wenn ja dann leer!!
Mein Code:

$MAILHTML='Jede Menge HTML';

$contenttypes = array(
"text/plain" => array("encoding"=>"8bit" ,"info"=>"purer Text"),
"text/html" => array("encoding"=>"8bit" ,"info"=>"HTML-Dokument")
);

$adressdaten = ''.$vorname.';'.$name.';'.$strasse.';'.$nr.';'.$plz.';'.$ort.';'.$land .';'.$telefon.';'.$fax.';'.$mailer.';'.$nachricht.';';

$daten_file = 'daten.txt';

// Sichergehen, dass die Datei existiert und beschreibbar ist
if (is_writable($daten_file)) {

// Öffnen $daten_file im "Anhänge" - Modus.
// Der Dateizeiger befindet sich am Anfang der Datei, und
// dort wird $adressdaten später mit fwrite() geschrieben.
if (!$handle_text = fopen($daten_file, "w")) {
print "Kann die Datei $daten_file nicht öffnen";
exit;
}
// Schreibe $adressdaten in die geöffnete Datei.
if (!fwrite($handle_text, $adressdaten)) {
print "Kann in die Datei $daten_file nicht schreiben";
exit;
}
fclose($handle_text);

} else {

}

$MAILANHANG1 = $daten_file;
/* Codiere Datei ins BASE64-Format, falls noetig */
if($contenttypes[$anhang_content_type][encoding]=="base64") $datei_content = chunk_split(base64_encode($datei_content));
else $datei_content = $datei_content;

$boundary = strtoupper(md5(uniqid(time())));

$HEADER ="MIME-Version: 1.0\r\n";
$HEADER .="Content-Type: text/html; \n\t boundary=\"".$boundary."\"\r\n";
$HEADER .="\n\nThis is a multi-part message in MIME format -- Dies ist eine mehrteilige Nachricht im MIME-Format";

/* Hier faengt der normale Mail-Text an */
$HEADER .="\n--$boundary";
$HEADER .= "\nContent-Transfer-Encoding: ".$contenttypes[$content_type][encoding];
$HEADER .= "\nContent-Type: $content_type";
$HEADER .= "\n\n$MAILHTML";

$HEADER="From:$absender\n";
$HEADER .="Reply-To: $absender\n";
$HEADER .="Bcc: $email_to_bcc\n";
$HEADER .="X-Mailer: Webformular - copyright 2004 by J. Schulz\n";
$HEADER .="X-Sender-IP: $REMOTE_ADDR\n";
$HEADER .="X-Priority: 1\r\n";
$HEADER .="Content-Type: text/html";

/* Hier faengt der Datei-Anhang an */
$HEADER .= "\n--$boundary";
$HEADER .= "\nContent-Type: text/plain; name=\"$MAILANHANG1\"";
/* Lese aus dem Array $contenttypes die Codierung fuer den MIME-Typ des Anhangs aus */
$HEADER .= "\nContent-Transfer-Encoding: ".$contenttypes[$anhang_content_type][encoding];
$HEADER .= "\nContent-Disposition: attachment; filename=\"$MAILANHANG1\"";

/* Gibt das Ende der eMail aus */
$HEADER .= "\n--$boundary--";

mail("admin@localhost.de","Anfrage über Kontaktformular","",$HEADER);
Kann mir da jemand helfen?
Viele Grüße und schon mal Danke
Jürgen