Hallo Leute,
ich habe etwas PHP-Code auf meinem Rechner geschrieben, der mit meinem lokalen Apache ohne Probleme funktioniert. Allerdings habe ich das Problem, dass es auf dem Web-Server nicht vollständig läuft. Die Mail-Funktion an sich funktioniert. Seit dem ich den Code für den Anhang hinzugefügt habe, wird allerdings keine Mail mehr verschickt. Ich kann beim besten Willen keine Ursache dafür finden. Hat wer von euch eine Idee???
Hier erfolgt die Eingabe der Daten:
PHP-Code:
<form enctype="multipart/form-data" action="ADRESSEZUMSERVER" method="POST">
<table rules="none" >
<colgroup>
<col width="100">
<col>
</colgroup>
<tr><td>Empfänger:</td><td><input type="text" name="empfanger" size="52"/></td></tr>
<tr><td>Betreff:</td><td><input type="text" name="betreff" size="52"/></td></tr>
<tr><td>Nachricht:</td><td><textarea name="nachricht" cols="50" rows="10"></textarea></td></tr>
<tr><td>Absender:</td><td><input type="text" name="absender" size="52" value=<?php echo $Email ?> readonly /></td></tr>
<tr><td>Antwort an:</td><td><input type="text" name="antwort" size="52" value=<?php echo $Email ?> readonly /></td></tr>
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<tr><td>Datei:</td><td><input name="userfile" size="52" type="file" /></td></tr>
<tr><td colspan=2 align=middle><input type="submit" value="Weiter"></td></tr>
</table>
</form>
Und hier die Verarbeitung:
PHP-Code:
<?php
$uploaddir = './uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
$ffile = $uploaddir . $_FILES['userfile']['name'];
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "Successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
?>
<?php
$empfaenger = $_POST['empfanger'];
$betreff = $_POST['betreff'];
$absender = $_POST['absender'];
$nachricht_text = $_POST['nachricht'];
$antwort = $_POST['antwort'];
$dateiname = $uploadfile;
$dateiname_mail = $_FILES['userfile']['name'];
$id = md5(uniqid(time()));
$dateiinhalt = fread(fopen($dateiname, "r"), filesize($dateiname));
$kopf = "From: $absender" . "\r\n";
$kopf .= "Reply-To: $antwort" . "\r\n";
$kopf .= "MIME-Version: 1.0\n";
$kopf .= "Content-Type: multipart/mixed; boundary=$id\n\n";
$kopf .= "This is a multi-part message in MIME format\n";
$kopf .= "--$id\n";
$kopf .= "Content-Type: text/plain\n";
$kopf .= "Content-Transfer-Encoding: 8bit\n\n";
$kopf .= $nachricht_text;
$kopf .= "\n--$id";
// Content-Type: image/gif, image/jpeg, image/png » MIME-Typen - selfHtml.org
$kopf .= "\nContent-Type: image/jpeg; name=$dateiname_mail\n";
$kopf .= "Content-Transfer-Encoding: base64\n";
$kopf .= "Content-Disposition: attachment; filename=$dateiname_mail\n\n";
$kopf .= chunk_split(base64_encode($dateiinhalt));
$kopf .= "\n--$id--";
if (mail($empfaenger, $betreff, "", $kopf) === true) {
echo 'Die E-Mail wurde erfolgreich versendet';
} else {
echo 'Die E-Mail konnten nicht versendet werden';
}
?>
<?php
unlink($ffile);
?>