<?php
#
# Formulardaten als Attachment senden
#
# Festlegen der Empfaengeradresse
$to = "df@erinye.com";
# Festlegen der interessanten Formularfelder und deren Reihenfolge
$fields = array("feld1", "feld2", "feld3");
?>
<html>
<head>
<title>Formular</title>
</head>
<body>
<?php
if(!isset($_POST["send"])) {
# Hier wird ein HTML-Formular erzeugt, falls keine Daten uebergeben wurden.
# Es kann natuerlich auch jedes andere, selbstgemachte HTML-Formular mit diesem
# Script benutzt werden, ohne dass an dieser Stelle etwas geaendert werden muesste.
?>
<form method="POST" action="<?=$_SERVER['PHP_SELF'];?>">
<?php
foreach($fields as $f) {
echo "$f: <input type=\"text\" name=\"$f\" /><br />";
}
?>
<input type="submit" name="send" value="" />
</form>
<?php
} else {
# Hier wird die E-Mail zusammengefuddelt.
$plaintext = "";
$data = "";
foreach($fields as $k) {
$d = strtr($_POST[$k], "\t\r\n", " ");
if(strlen($data) > 0) {
$data .= "\t";
}
$data .= $d;
$plaintext .= "$k: $d\r\n";
}
$boundary = "FORM-MAIL-" . getmypid() . "-" . time();
$msg = "Diese E-Mail sollte mit einem MIME-faehigen Client gelesen werden.\r\n\r\n";
$msg .= "--$boundary\r\nContent-Type: text/plain; charset=\"iso-8859-1\"\r\nContent-Transfer-Encoding: 7bit\r\n\r\n";
$msg .= "Das Formular wurde wie folgt ausgefuellt:\r\n\r\n";
$msg .= $plaintext;
$msg .= "\r\n\r\nIm Folgenden stehen die Inhalte der Felder durch TAB getrennt:\r\n\r\n";
$msg .= $data;
$msg .= "\r\n\r\nDas Attachment enthaelt die selben Daten.\r\n";
$msg .= "\r\n\r\n--$boundary\r\nContent-Type: application/octet-stream; name=\"formular.txt\"\r\nContent-Transfer-Encoding: base64\r\nContent-Description: \"Formulardaten\"\r\n\r\n";
$msg .= base64_encode($data);
$msg .= "\r\n--$boundary--\r\n";
if(mail($to, "Formular", $msg, "MIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\"$boundary\";\nContent-Transfer-Encoding: 7bit")) {
# Zwischen den beiden Tag-Teilen mit den lustigen Fragezeichen steht der HTML-Code, der angezeigt wird,
# wenn die Nachricht wie vorgesehen versandt werden konnte. Das ist ganz normaler HTML-Code, der angepasst werden kann.
?>
<center>
Vielen Dank. Ihre Nachricht wurde versandt.
</center>
<?php
} else {
# Hier nochmal das selbe, falls die Nachricht aus irgendeinem Grund nicht versandt werden konnte.
?>
<center>
Leider ist ein Fehler aufgetreten.
</center>
<?php
}
}
?>
</body>
</html>