Hallo!
Vorab sei gesagt, dass ich in PHP (noch) Anfänger bin. Mein Problem ist folgendes:
Ich benutze im Wesentlichen dieses Skript, um in einem Formular einen Anhang per E-Mail an eine vordefinierte Adresse zu schicken.
Das klappt auch soweit ganz gut. Nur leider kommen die Dateien ohne Endung an und bei mehreren Wörtern in einem Dateinamen steht nur der erste im Attachment. Also z.B. heißt die Datei "Photoshop Tutorial.zip" und ankommen tut dann "Photoshop".
Vielleicht kann mir jemand auf der Grundlage des genannten Skripts sagen, was ich einbauen muss, damit der Anhang korrekt angezeigt wird. Hat vielleicht etwas mit dem Mime-Format zu tun.
Hier ist das Skript:
Quelle
Vorab sei gesagt, dass ich in PHP (noch) Anfänger bin. Mein Problem ist folgendes:
Ich benutze im Wesentlichen dieses Skript, um in einem Formular einen Anhang per E-Mail an eine vordefinierte Adresse zu schicken.
Das klappt auch soweit ganz gut. Nur leider kommen die Dateien ohne Endung an und bei mehreren Wörtern in einem Dateinamen steht nur der erste im Attachment. Also z.B. heißt die Datei "Photoshop Tutorial.zip" und ankommen tut dann "Photoshop".
Vielleicht kann mir jemand auf der Grundlage des genannten Skripts sagen, was ich einbauen muss, damit der Anhang korrekt angezeigt wird. Hat vielleicht etwas mit dem Mime-Format zu tun.
Hier ist das Skript:
PHP-Code:
<html>
<head>
<title>Kontaktformular inkl. Dateianhang mit PHP</title>
</head>
<body>
<?php
$Empfaenger = "meine@mailadresse.de";
if($_REQUEST['Send'])
{
if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht']))
{
echo"Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!";
}
else
{
$Mailbetreff = "Kontakt: ";
$Mailbetreff .= $_REQUEST['Betreff'];
$Trenner = md5(uniqid(time()));
$Header = "From: ".$_REQUEST['Email'];
$Header .= "\n";
$Header .= "MIME-Version: 1.0";
$Header .= "\n";
$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
$Header .= "\n\n";
$Header .= "This is a multi-part message in MIME format";
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: text/plain";
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: 8bit";
$Header .= "\n\n";
$Header .= "Sie haben folgende Nachricht erhalten: \n\n";
while(list($Formularfeld, $Wert) = each($_REQUEST))
{
if($Formularfeld != "Send" && $Formularfeld != "Anhang")
{
$Header .= $Formularfeld.": ".$Wert."\n";
}
}
$Header .= "\nDatum/Zeit: ";
$Header .= date("d.m.Y H:i:s");
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: ";
$Header .= $_FILES['Anhang']['type'];
$Header .= "; name=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: base64";
$Header .= "\n";
$Header .= "Content-Disposition: attachment; filename=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n\n";
$Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
$Header .= chunk_split(base64_encode($Dateiinhalt));
$Header .= "\n";
$Header .= "--$Trenner--";
mail($Empfaenger, $Mailbetreff, "", $Header);
echo"Vielen Dank für Ihre eMail!";
}
}
else
{
?>
<table border="0" cellpadding="1" cellspacing="2">
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
<tr>
<td>Name:</td>
<td><input name="Name" size="20" type="text"></td>
</tr>
<tr>
<td>eMail:</td>
<td><input name="Email" size="20" type="text"></td>
</tr>
<tr>
<td>Betreff:</td>
<td><select name="Betreff" size="1"><option>Hilfe</option><option>Kritik</option><option>Werbung</option></select></td>
</tr>
<tr>
<td>Nachricht:</td>
<td><textarea cols="25" name="Nachricht" rows="5"></textarea></td>
</tr>
<tr>
<td>Anhang:</td>
<td><input name="Anhang" size="20" type="file"></td>
</tr>
<tr>
<td align="center" colspan="2"><input name="Send" type="submit" value="Abschicken"> <input name="Reset" type="reset" value="Löschen"></td>
</tr>
</form>
</table>
<?php
}
?>
</body>
</html>