Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2003 Teil von Oktober

SELFHTML Forumsarchiv
Anhang in mail()

Informationsseite
  1. Seite (PHP) Anhang in mail() von Inga, 31. 10. 2003, 13:01
nach unten

Anhang in mail()

Die folgende Nachricht zum Thema stammt von: Inga, 31. 10. 2003, 13:01

Hallo,

schlage mich seit zwei Tagen mit mail() und Anhang herum.
Verschiedene Scripts ausprobiert, die bei anderen auch funktionieren, bei mir stürzt PHP ab [aus ApacheLog Premature end of script header].

Habe PHP php-4.3.3
Datei liegt im selben Ordner ...

Nutze zB folgendes Script

<?php
$file = "test.xls";
$file_name = "test.xls";
$subject = "Testmail";
$from = "xx@xx.de";
$to = "xy@xy.de
$message = "Dies ist ein Test";
$boundary = strtoupper(md5(uniqid(time())));
$mail_header  = "From:$from\n";
$mail_header .= "MIME-Version: 1.0";
$mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
$mail_header .= "\n\nThis is a multi-part message in MIME format  --  Dies ist eine mehrteilige Nachricht im MIME-Format";
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: text/plain";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n$message";
$file_content = fread(fopen($file,"r"),filesize($file));
$file_content = chunk_split(base64_encode($file_content));
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: application/x-excel; name=\"$file_name\"";
$mail_header .= "\nContent-Transfer-Encoding: base64";
$mail_header .= "\nContent-Disposition: attachment; filename=\"$file_name\"";
$mail_header .= "\n\n$file_content";
$mail_header .= "\n--$boundary--";
mail($to,$subject,"",$mail_header);
?>

nach obennach unten

Anhang in mail()

Die folgende Nachricht zum Thema stammt von: Tom, 31. 10. 2003, 17:12

Hallo Inga,


$file_content = chunk_split(base64_encode($file_content));


es könnte sein, dass Dir diese Zeile die Kopfschmerzen macht. Habe ich auch mal ganz lange daran geknabbert.

Chunc_split nutzt als default "\n"
die RFC schreibt aber bei base64 zwingend "\r\n" vor.

Leider halten sich die Mailserver auch daran und meinen, bei der anderen Version dürften sie schlafen gehen... ;-(

string chunk_split ( string body [, int chunklen [, string end]])

Ich habe in meine Funktion deshalb aufgenommen:

string chunk_split ( string body , 74 , "\r\n");

Und dann hats funktioniert und ich habe den Mailserver nicht mehr zum Abstürzen gebracht.

Grüße

Tom

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2003 Teil von Oktober

© 1998-2006 Seite Impressum, Software: Classic Forum