@Unbekannter Interessent: Lösung für Mailanhang+PHP
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Mail with Attachment</title> <meta http-equiv="content-type" content="text/html; charset= ISO-8859-1" /> </head> <body> <?php if(!($_SERVER['REQUEST_METHOD']=='POST')) { ?> <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="POST" enctype="multipart/form-data"> <table> <tr> <td>Nachname:</td> <td> <input type="text" name="name" /> </td> </tr> <tr> <td>Klasse:</td> <td> <select name="klasse"> <option>3BHD</option> <option>2BHD</option> </select> </td> </tr> <tr> <td>Übungsname:</td> <td> <input type="text" name="uebung" /> </td> </tr> <tr> <td>Übung (als *.zip-File gepackt):</td> <td> <input type="file" name="file" accept="application/zip" /> </td> </tr> <tr> <td> <input type="submit" name="" value="Senden" /> </td> <td> </td> </tr> </table> </form> <br /> <b>Achtung:</b> Ihre IP wird mitgeloggt, so dass eine Zurückverfolgung bei strafrechtlich relevanten Missbrauch dieses UploadCenters problemlos möglich ist! Spamming wird strafrechtlich verfolgt! <br /> <br /> <br /> <br /> <b>Copyright 2004, Dominik Rauch <SideWinder@c-plusplus.net></b> <?php } else { // Input aus Formular extrahieren $name = $_POST['name']; $klasse = $_POST['klasse']; $uebung = $_POST['uebung']; $filename = $_FILES['file']['name']; $filesize = $_FILES['file']['size']; $filetype = $_FILES['file']['type']; $filetemp = $_FILES['file']['tmp_name']; $loguser = "IP: ".$_SERVER['REMOTE_ADDR']."\nPort: ".$_SERVER['REMOTE_PORT']."\nBrowser: ".$_SERVER['HTTP_USER_AGENT']."\n"; // Input aus Formular auf Richtigkeit checken if(trim($name)=='') die('Geben Sie einen Namen an!'); if(trim($uebung)=='') die('Geben Sie einen Namen für die Übung an!'); if(!file_exists($filetemp)) { die('Die Datei konnte aus unbekanntem Grund nicht korrekt hochgeladen werden.'); } else { if(!is_uploaded_file($filetemp)) die('Die Datei konnte aus unbekanntem Grund nicht korrekt hochgeladen werden.'); } if($filesize > 1048576) die('Die Maximalgröße für Dateien beträgt ein Megabyte.'); if($filetype != 'application/zip') die('Die hochgeladene Datei muss vom Typ "*.zip" sein.'); // Aus dem Input den Output für die Mail generieren $from = 'UploadCenter'; $to = 'anonymous@example.com'; $subject = $klasse.' '.$name.' '.$uebung; $text = "Diese Mail wurde automatisch generiert um eine Übung zu senden.\n\nDiese Mail wurde in Auftrag gegeben von:\n".$loguser; // Den Inhalt der hochgeladenen Datei für den Versand per Mail anpassen $f = fopen($filetemp,'rb'); $filecontent = fread($f,filesize($filetemp)); fclose($f); $filecontent = chunk_split(base64_encode($filecontent)); // Zufälligen String als Trenner zwischen Mail und Attachment generieren $mimeboundary = '[ MIME-Boundary'.md5(mt_rand()).' ]'; // Mail bauen - Headers $headers = "From: $from\r\n". "MIME-Version: 1.0\r\n". "Content-Type: multipart/mixed;\r\n". " boundary=\"{$mimeboundary}\""; // Mail bauen - Message $message = "--{$mimeboundary}\n". "Content-Type: text/plain; charset=\"ISO-8859-1\"\n". "Content-Transfer-Encoding: 7bit\n\n". $text. "\n\n". "--{$mimeboundary}\n". "Content-Type: {$filetype};\n". " name=\"{$filename}\"\n". "Content-Transfer-Encoding: base64\n\n". $filecontent. "\n\n". "--{$mimeboundary}". "--\n"; // Mail senden if(mail($to,$subject,$message,$headers)) { ?> Mail wurde versendet. <?php } else { ?> Mail konnte aus unbekanntem Grund nicht korrekt gesendet werden. <?php } } ?> </body> </html>
Verbesserungsvorschläge kann man natürlich auch noch bringen
MfG SideWinder