![]() |
PHP: Weshalb ist der Inhalt nicht mehr lesbar?
Hallo Zusammen,
bin gerade dabei, ein kleines Antwortformular zu implementieren. Nur klappt das nicht ganz. Wenn eine Datei mitgesendet werden soll, so kommt sie anschliessend verstümmelt an. Ich bin ratlos. Hat einer eine Idee? Danke schon mal. Das Attachment wird folgendermassen hinzugefügt:
Code:
Und das kämm auch gut an:
$file = fopen($tmp_name,'rb');
$data = fread($file, filesize($tmp_name)); fclose($file); // Add file attachment to the message $Message .= "--$semi_rand"; $Message .= "\nContent-Type: application/octetstream;\n name=\"$file_name\""; $Message .= "\nContent-Transfer-Encoding: base64"; $Message .= "\nContent-Disposition: attachment;\n filename=\"$file_name\"\n"; $Message .= chunk_split(base64_encode($data)); // Base64 encode the file data
Code:
Nur anschliessend ist es nicht mehr lesbar :-(
--49c27f4c4bed38fa501fc0aa4fec2f86
Content-Type: application/octetstream; name="my.png" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="my.png" jwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAACgJJREFU aEPlmvtTVdcVx8k0GZ1OfoxVqxbFRxUVhcvjXi5cnpc3VhQECgqoyEusgKBGUSCmbaJgZhpN0piZ Rk1/SWZqkp+TMf2XOtMZ6g+r+7vO2fvuve8+l3OjJmnjzPLs8+CH+5nv+u61196vnBgqyNH//eK1 12j9+tdzXl23Lmfd+l8a735ON8+ereY8W13NWf33v3Ke/Wf1FeO3A5qMoQtVNHWrh2b+2Mdxfr6T hufaaHg2Pc6KZ4FxqZXOWnFG3DtjRjx3xGnxLC2mxbPplsAYEu84psLFoPhu8KIdzeJ3HVEMwGF4 toG6Tx8myUkBG5lr5 ... MTQMLix08ovWE6Vp4BSMNCBSOelw2I/+BwHZcON1e2lCnN2bfruXz6apQ30Y4AGOSPIR0jeP87HJ 9p7omtHWHaX/x+g5V6fO3kJQ/WPR9DO38hDu6alacSryqHFgWR5c/rldwcE+pAxO/wV6MsBdGErU YQAAAABJRU5ErkJggg== --49c27f4c4bed38fa501fc0aa4fec2f86 Danke schon mal. Euer GreenHorn |
Re: PHP: Weshalb ist der Inhalt nicht mehr lesbar?
Zitat:
Mit freundlichen Grüßen, Valle |
Re: PHP: Weshalb ist der Inhalt nicht mehr lesbar?
Hallo Valle,
dies heißt, dass mein Thunderbird (auch MS Express) die Attatchments nicht mehr interpretieren kann. Es gibt ein kleines weißes Quartrat mit einen roten Kreuz in der Mitte. Habe die Dateien mal gegen eine Mail vom Thunderbird verglichen, und da scheint, daß die Kodierung irgendwie durcheinander gekommen ist. Ich habe aber keinen Plan, an was dies liegen könnt. Schöne Grüße Euer GreenHorn |
Re: PHP: Weshalb ist der Inhalt nicht mehr lesbar?
Eventuell kannst du dir mal
![]() Mit freundlichen Grüßen, Valle |
Re: PHP: Weshalb ist der Inhalt nicht mehr lesbar?
Danke Valle,
wenn ich die Datei speicher, aus dem EMail Client, dann wird sie mit einer Größe von 0 Byte gespeichert. Irgendwie scheint er nicht das Ende richtig interpretieren zu können. Aber weshalb? :cry: Schöne Grüße GreenHorn |
Re: PHP: Weshalb ist der Inhalt nicht mehr lesbar?
Hast du das verlinkte Howto mal angeschaut und den Code mit deinem verglichen / ausgetauscht?
Mit freundlichen Grüßen, Valle |
Re: PHP: Weshalb ist der Inhalt nicht mehr lesbar?
Ja habe ich. In dem Link wird eine 8Bit Kodierung verwendet. Aber das hilft leider auch nicht weiter.
Hab es an anderer Stelle noch mal getestet, da wird das Dokumentenformat nicht erkannt. Hier muss irgendwo ein Fehler drin sein, wenn die Datei an die Message angegehängt wird. Nur welcher :-( |
Re: PHP: Weshalb ist der Inhalt nicht mehr lesbar?
Das hilft dir zwar nicht direkt weiter, aber es gibt fertige Skripte wie
![]() |
Re: PHP: Weshalb ist der Inhalt nicht mehr lesbar?
Hallo Matze,
an das hab ich auch schon gedacht. Habe mit dem RMail experimentiert ( ![]() Das von Dir verlinkte Script, scheint mir recht chaotisch zu sein, da müßte ich alles umbauen. Da scheint es leichter, den Fehler zu finden, wo er auch sei ... :-( Schöne Grüße GreenHorn |
Re: PHP: Weshalb ist der Inhalt nicht mehr lesbar?
Hier einmal die abgespeckte Routine. Vielleicht sieht ja von euch einer den Fehler. Dank schon mal.
Code:
Schöne Grüße
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html> <head> <title> Send Attatchments </title> </head> <?php function SendMail() { if (isset($_POST['EMail'])) {$EMail = htmlspecialchars($_POST['EMail']);}; if (isset($_POST['Message'])) {$Message = htmlspecialchars($_POST['Message']);}; if (($EMail != '') and ($Message != '')) { if (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z]{2,4})$/i', $EMail)) { WriteError("Ungültige EMail Addresse"); } else { $Headers = 'From: ' . $EMail . "\r\n"; $filesuploaded = 0; foreach($_FILES["files"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["files"]["tmp_name"][$key]; if (is_uploaded_file($tmp_name)) { $filesuploaded += 1; }; }; }; if ($filesuploaded > 0) { $semi_rand = md5(uniqid(time())); // Generate a boundary string $FileSend = false; $Headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"$semi_rand\"\n"; $Message = "This is a multi-part message in MIME format.\n" . "--$semi_rand\n" . "Content-Type: text/plain; charset=iso-8859-1; format=flowed\n" . "Content-Transfer-Encoding: 7bit\n\n" . $Message . "\n\n" ; foreach($_FILES["files"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["files"]["tmp_name"][$key]; $file_name = $_FILES["files"]["name"][$key]; $file_type = $_FILES["files"]["type"][$key]; if (is_uploaded_file($tmp_name) ) { $file = fopen($tmp_name,'rb'); $data = fread($file, filesize($tmp_name)); fclose($file); // Add file attachment to the message $Message .= "--$semi_rand"; $Message .= "\nContent-Type: $file_type; name=\"$file_name\""; $Message .= "\nContent-Transfer-Encoding: base64"; $Message .= "\nContent-Disposition: attachment; filename=\"$file_name\"\n"; $Message .= chunk_split(base64_encode($data)); // Base64 encode the file data $FileSend = true; }; }; }; if ($FileSend) $Message .= "--$semi_rand--\n\n"; }; if (!mail('grennhorn@everymail.org', 'Mail with Attachments', $Message, $Headers)) { WriteError("Nachricht konte nicht versendet werden"); }; }; }; }; ?> <body> <?php SendMail() ?> <?php function WriteError($Message) {echo $Message; }; ?> </body> </html> GreenHorn |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz