Hallo!
PHP soll eine e-mail generieren und an diese ein PDF anhängen, das zuvor auf der Festplatte gespeichert wurde (permanent). Hier das Script:
$anhang_content_type = "application/pdf";
$from_email="xy";
$datei=mssql_result($b->res,0,"document");
$datei = "C:\Programme\Apache Group\Apache\htdocs\ecommerce\" . $datei;
$dateiname = mssql_result($b->res,0,"pdf_name");
$datei_content = fread(fopen($datei,"r"),filesize($datei));
$datei_content = chunk_split(base64_encode($datei_content),72);
//$datei = chunk_split(base64_encode(fread(fopen($datei, "r"), filesize($datei))));
$boundary = strtoupper(md5(uniqid(time())));
$mail_header = "From: ".$from_email."\r\n"."Reply-To:".$from_email;
$mail_header .= "\nMIME-Version: 1.0";
$mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
$mail_header .= "\n\nThis is a multi-part message in MIME format";
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: text/plain";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$subject = "xy";
$message = "texttexttext";
$to = "me";
$mail_header .= "\n\n$message";
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: $anhang_content_type; name="$dateiname"";
//$mail_header .= "\nContent-Transfer-Encoding: ".$anhang_content_type;
$mail_header .= "\nContent-Transfer-Encoding: base64";
$mail_header .= "\nContent-Disposition: attachment; filename="$dateiname"";
$mail_header .= "\n\n$datei_content";
$mail_header .= "\n--$boundary--";
$send = mail($to,$subject,"",$mail_header);
-----------
Inhalt der Datenbankresults:
$datei=C:\dd\eew\Apache\bg\ddd\eee\eee\FreieGestaltung_2003_07_08__09_28_08.pdf
$dateiname = FreieGestaltung_2003_07_08__09_28_08.pdf
Server: W2K, Apache
Das Versenden der e-mail funktioniert soweit, sobald aber $mail_header .= "\n\n$datei_content"; nicht auskommentiert ist, kommt immer ein HTTP 500-Internal Server Error. In der error.log steht dann immer
Premature end of script headers: [Pfad zu php.exe].
Zu Testzwecken habe ich einmal die base64-Codierung einer anderen (bereits empfangenen) mail eingefügt. Sobald die generierte Mail größer als 4KB (Anhang dann 1,92KB) ist, kommt der HTTP 500-Error.
Hat jemand eine Idee, was das seien kann?
Vielen Dank im Voraus!
Viele Grüße
Robert