Mail mit Anhang verschicken

nero25

Mitglied
Hallo Freunde!

Ich bin seid heute mittag im Forum und suche ein funktionierendes
Script (Mail mit Anhang). Habe auch eine ganze Menge gefunden die
ich einfach nicht zu laufen kriege. Jetzt bhabe ich eins gefunden
und weis nichts damit anzufangen ich hoffe mir kann da jemand
helfen! Ich weis einfach nicht wie ich die klamotte in mein Formular
einbinde.
und diese beiden Dinge sind mir ein Rätsel:

$Dateiname = "grafik.gif";
$DateinameMail = "anhang.gif";


<?php

$Empfaenger = "meine@mailadresse.de";
$Betreff = "Meine erste Mail mit Anhang";

$Dateiname = "grafik.gif";
$DateinameMail = "anhang.gif";

$Header = "From: Mein Name <meine@mailadresse.de>";

$Trenner = md5(uniqid(time()));
$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 .= "Meine erste Mail mit Anhang!";
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: image/gif; name=$DateinameMail";
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: base64";
$Header .= "\n";
$Header .= "Content-Disposition: attachment; filename=$DateinameMail";
$Header .= "\n\n";
$Dateiinhalt .= fread(fopen($Dateiname, "r"), filesize($Dateiname));
$Header .= chunk_split(base64_encode($Dateiinhalt));
$Header .= "\n";
$Header .= "--$Trenner--";

mail($Empfaenger, $Betreff, "", $Header);

?>

Bitte, Bitte helfen ich kriege schon Hörner

Danke
 
Hi,

wenn Du eine Mail mit Anhang verschicken möchtest, so musst Du den Anhang öffnen und auslesen. Dies geschieht in der Zeile
$Dateiinhalt .= fread(fopen($Dateiname, "r"), filesize($Dateiname));

,wobei $Dateiname den vollständigen Pfad zu deiner Datei enthält. Also z.B. /var/daten/bilder/grafik.gif oder unter Windows z.B. c:\grafik.gif.

Die nächste Zeile kodiert das ganze base64. Darum auch die Zeile

$Header .= "Content-Transfer-Encoding: base64";

Dadurch wird die Kodierung des Anhangs festgelegt. Der Anhang mus kodiert werden, weil er evtl. Zeichen enthält die bei der normalen codierung 7 bit ascii ungültig sind.

Nun muß die Datei in der Mail nicht unbedingt so heißen wie das Original auf dem Server. Aus diesem Grund gibt es in dem Skript die Variable $DateinameMail. Hier kannst Du dem Anhang bei Bedarf einen anderen Namen geben z.B. 'anhang.gif'.

Wenn Du einen Anhang verschickst must Du noch auf den Content-Type des Anhangs achten.

In dem Beispiel ist das image/gif

$Header .= "Content-Type: image/gif; name=$DateinameMail";

Für ein PDF wäre dies application/x-pdf.

Was Du nun noch machen must ist die Variablen durch Dein Skript/Formular mit Leben füllen.
Es gibt her aber viele verschiedene Wege. Evtl. beschreibst Du mal etwas genauer was Du vorhast.
 
Erst mal Danke für die Prompte Antwort

Mein Form wie es im Moment ist sieht folgenderm. aus

<html>
<head>
<title></title>
<meta name="author" content="">

</head>
<body scroll="no">
<br>
<form action ="sendmail.php" method="post">
<table div align="center">

<th><div align="left">Name:</div>
<th><div align="left"><input type="text" size="40" name="name"></div></th>
<tr>
<th><div align="left">Vorname:</div>
<th><div align="left"><input type="text" size="40" name="vorname"></div></th>
<tr>
<th><div align="left">Strasse:</div>
<th><div align="left"><input type="text" size="40" name="strasse"></div></th>
<tr>
<th><div align="left">PLZ:</div>
<th><div align="left"><input type="text" size="7" name="plz"></div></th>
<tr>
<th><div align="left">Ort: </div>
<th><div align="left"><input type="text" size="40" name="ort"></div></th>
<tr>
<th><div align="left">E-Mail: </div>
<th><div align="left"><input type="text" size="40" name="email"></div></th>
<tr>
<th><div align="left">Telefon: </div>
<th><div align="left"><input type="text" size="20" name="telefon"></div></th>
<tr>

<tr>
<th></th>
<th><div><input type="submit" value="Absenden">
<input type="reset" value="Eingabe löschen" name="reset"></th>
<tr>
</tr>
</table>
</form>
</body>
</html>

wie schon gechrieben weiß ich einfach nicht wie ich das Script hier einbinde
 

Neue Beiträge

Zurück