Hallo Wissende,
mit folgendem Code, ist es mir möglich eine Datei als Anhang per Mail aus einem Formular heraus zu versenden. Meine Frage ist eigentlich nur, was ich machen muss, damit ich mehr als einen Dateianhang versenden kann. Ich würde mich dabei, der Einfachheit halber, auch an Namensrestriktionen halten und die Inputfelder im Form z.B. so benennen: upload1, upload2 usw...
Folgenden Code nutze ich bisher
könnte ich da irgendwo ne Schleife unterbringen? Es tut mir leid, aber ich habe leider nichts passendes bei der Suche finden können.
mit folgendem Code, ist es mir möglich eine Datei als Anhang per Mail aus einem Formular heraus zu versenden. Meine Frage ist eigentlich nur, was ich machen muss, damit ich mehr als einen Dateianhang versenden kann. Ich würde mich dabei, der Einfachheit halber, auch an Namensrestriktionen halten und die Inputfelder im Form z.B. so benennen: upload1, upload2 usw...
Folgenden Code nutze ich bisher
könnte ich da irgendwo ne Schleife unterbringen? Es tut mir leid, aber ich habe leider nichts passendes bei der Suche finden können.
PHP-Code:
# Maximale Größe des Attachments in Bytes:
$max_attach_size = 100000;
$filesize = false;
$int_filesize = $_FILES['upload1']['size'];
$str_filename = $_FILES['upload1']['name'];
if ($int_filesize > $max_attach_size)
{$filesize = false;
echo "<h3>Meldung vom FormMailer</h3>";
echo "Ihr Attachment <b>".$str_filename."</b> ist zu groß
(".number_format($_FILES['upload1']['size']/1000,0,",","")." KB)
- Maximalgröße: .number_format($max_attach_size/1000,0,",","")."
KB<br>";
echo "<br><a href=\"javascript:history:back()\">Zurück zum Formular</a>";
}
else
{// Wenn Attachment vorhanden und grösse ok, dann MIME-Mail erstellen:
$filesize = true;
if ($_FILES['upload1']['name'] && $filesize == true)
{
// Datei einlesen und codieren:
$datei_content = fread(fopen($_FILES['upload1']['tmp_name'],"r"),
filesize($_FILES['upload1']['tmp_name']));
$datei_content = chunk_split(base64_encode($datei_content),76,"\n");
// Boundary festlegen:
$boundary = md5(uniqid(rand()));
// Mail-Header:
$header = "From: FormMailer<".$strFrom.">\r\n";
$header .= "X-Sender-IP: ".$ip."\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
$header .= "This is a multi-part message in MIME format.\n";
// Mail-Text:
$header .= "--".$boundary;
$header .= "\nContent-Type: text/plain";
$header .= "\nContent-Transfer-Encoding: 8bit";
$header .= "\n\n".$text."\n\n(".number_format($int_filesize/1000,0,",","")." KB)";
// Attachment:
$header .= "\n--".$boundary;
$header .= "\nContent-Type: ".$_FILES['upload1']['type'].";
name=\"".$_FILES['upload1']['name']."\"";
$header .= "\nContent-Transfer-Encoding: base64";
$header .= "\nContent-Disposition: attachment;
filename=\"".$_FILES['upload1']['name']."\"";
$header .= "\n\n".$datei_content;
// Ende:
$header .= "\n--".$boundary."--";
// Sende E-Mail und gebe Fehler bzw. Bestaetigung aus
mail($email,$betreff,"",$header) or die ("Fehler beim Übermitteln!");
Kommentar