Claudia_aus_NRW
Mitglied
Guten Abend,
hab hier mal ein Script, wo der User eine Nachricht an mich schicken kann. Da ich habe ein paar Mail Adressen haben, möchte ich, dass der User via DropDown Liste ein Betreff auswählen kann z.B. Bilder dann soll es eben an bilder@xx.de gehen wenn ich Privat auswählt, dann soll die Mail eben an privat@xx.de gehen.
Kann mir da jemand helfen, wie ich das umsetzten kann.
Hier kommt mal das Skript von mir:
So wo die Mail hingehen soll, das habe ich so festgelegt:
Joa das geht auch, aber wie muss ich das jetzt eben machen, dass ich das so machen kann wie ich das oben gerade geschrieben habe? Bzw. geht das überhaupt?
Gruß Claudia
hab hier mal ein Script, wo der User eine Nachricht an mich schicken kann. Da ich habe ein paar Mail Adressen haben, möchte ich, dass der User via DropDown Liste ein Betreff auswählen kann z.B. Bilder dann soll es eben an bilder@xx.de gehen wenn ich Privat auswählt, dann soll die Mail eben an privat@xx.de gehen.
Kann mir da jemand helfen, wie ich das umsetzten kann.
Hier kommt mal das Skript von mir:
PHP:
<?php
if (isset($_POST["form_submitted"]))
{
// übergebene Variablen ermitteln:
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$text = $_POST['text'];
// Überprüfungen der Daten:
unset($errors);
if ($email != "" and !preg_match("/^[^@]+@.+\.\D{2,5}$/", $email)) $errors[] = "die E-Mail-Adresse sieht nicht richtig aus";
if ($text == "") $errors[] = "es wurde kein Text eingegeben";
if ($_FILES['probe']['size'] > $max_attach_size) $errors[] = "Attachment zu groß (".number_format($_FILES['probe']['size']/1000,0,",","")." KB) - Maximalgröße: ".number_format($max_attach_size/1000,0,",","")." KB";
if (empty($errors))
{
$text = stripslashes($text);
$subject = stripslashes($subject);
if ($name != "") $mail_name=$name; else $mail_name="unbekannt";
if ($subject != "") $mail_subject = $subject; else $mail_subject = "kein Betreff";
if ($email != "") $mail_email = $email; else $mail_email = "email@unknown.xyz";
$ip = $_SERVER["REMOTE_ADDR"];
// Wenn Attachment, dann MIME-Mail erstellen:
if (isset($_FILES['probe']['name']) && trim($_FILES['probe']['name']) != "")
{
// Datei einlesen und codieren:
$datei_content = fread(fopen($_FILES['probe']['tmp_name'],"r"),filesize($_FILES['probe']['tmp_name']));
$datei_content = chunk_split(base64_encode($datei_content),76,"\n");
// Boundary festlegen:
$boundary = md5(uniqid(rand()));
// Mail-Header:
$mail_header = "From: ".$mail_name." <".$mail_email.">\n";
$mail_header .= "X-Sender-IP: ".$ip."\n";
$mail_header .= "MIME-Version: 1.0\n";
$mail_header .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
$mail_header .= "This is a multi-part message in MIME format.\n";
// Mail-Text:
$mail_header .= "--".$boundary;
$mail_header .= "\nContent-Type: text/plain";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n".$text;
// Attachment:
$mail_header .= "\n--".$boundary;
$mail_header .= "\nContent-Type: ".$_FILES['probe']['type']."; name=\"".$_FILES['probe']['name']."\"";
$mail_header .= "\nContent-Transfer-Encoding: base64";
$mail_header .= "\nContent-Disposition: attachment; filename=\"".$_FILES['probe']['name']."\"";
$mail_header .= "\n\n".$datei_content;
// Ende:
$mail_header .= "\n--".$boundary."--";
// Sende E-Mail und gebe Fehler bzw. Bestaetigung aus
if (@mail($mailto,$mail_subject,"",$mail_header)) $sent = true; else $errors[] = "keine Verbindung zum Mailserver - bitte nochmal versuchen";
}
// kein Attachment, normale E-Mail:
else
{
$mail_header = "From: ".$mail_name." <".$mail_email.">\n";
$mail_header .= "X-Sender-IP: $ip\n";
$mail_header .= "Content-Type: text/plain";
if (@mail($mailto,$mail_subject,$text,$mail_header)) $sent = true; else $errors[] = "keine Verbindung zum Mailserver - bitte nochmal versuchen";
}
// Kopie an Absender:
if (isset($sent) && isset($email) && $email != "" && isset($_POST['copy']))
{
if (isset($_FILES['probe']['name']) && trim($_FILES['probe']['name']) != "") $copy_mail_text = "Kopie der versendeten E-Mail:\n\n".$text."\n\nAttachment: ".$_FILES['probe']['name']; else $copy_mail_text = "Kopie der versendeten E-Mail:\n\n".$text;
$header= "From: ".$mailto."\n";
$header .= "X-Sender-IP: ".$ip."\n";
$header .= "Content-Type: text/plain";
@mail($email, $mail_subject, $copy_mail_text, $header);
}
}
}
if (empty($sent))
{
if(isset($errors))
{
?>
<p class="caution">Fehler:</p>
<ul>
<?php foreach($errors as $f) { ?>
<li><?php echo $f; ?></li>
<?php } ?>
</ul>
<br />
<?php
}
?>
<form method="post" action="<?php echo basename($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data">
<div>
<p><b>Name:</b><br />
<input type="text" name="name" value="<?php if (isset($name)) echo htmlentities(stripslashes($name)); else echo ""; ?>" size="35" />
</p>
<p><b>E-Mail:</b><br />
<input type="text" name="email" value="<?php if (isset($email)) echo htmlentities(stripslashes($email)); else echo ""; ?>" size="35" />
</p>
<p><b>Betreff:</b><br />
<input type="text" name="subject" value="<?php if (isset($subject)) echo htmlentities(stripslashes($subject)); else echo ""; ?>" size="35" />
</p>
<p><b>Nachricht:</b><br />
<textarea name="text" cols="70" rows="12"><?php if (isset($text)) echo htmlentities(stripslashes($text)); else echo ""; ?>
</textarea>
</p>
<p><b>Attachment:</b><br />
<input type="file" name="probe" value="<?php if (isset($_POST['probe'])) echo htmlentities(stripslashes($_POST['probe'])); else echo ""; ?>" size="20"/>
</p>
<br />
<p>
<input type="submit" name="form_submitted" value=">>> Absenden" />
<input type="checkbox" name="copy" value="true" />
Kopie an Absender</p>
</div>
</form>
<?php
}
else
{
if (empty($email)) { ?>
<p><b>Danke!</b><br />
Nachricht erfolgreich versendet. Allerdings wurde keine E-Mail-Adresse angegeben, ich kann also nicht antworten.</p>
<?php }
else { ?>
<p><b>Danke!</b><br />
Nachricht erfolgreich versendet.</p>
<?php }
}
?>
So wo die Mail hingehen soll, das habe ich so festgelegt:
PHP:
# Adresse, an die die Formulardaten gesendet werden sollen:
$mailto = "XX@web.de";
# Maximale Größe des Attachments in Bytes:
$max_attach_size = 500000;
?>
Joa das geht auch, aber wie muss ich das jetzt eben machen, dass ich das so machen kann wie ich das oben gerade geschrieben habe? Bzw. geht das überhaupt?
Gruß Claudia