Bruge vedhæftet/uploadede-fil i en html-mail
Hej,Jeg har leget lidt med [cypermann]'s script, som nu ser således ud:
<?PHP
// Hvis din mail er sendt.
if(isset($_POST[afsend])) {
$fil = $_FILES['fileatt']['name'];
$fra = $_POST[email];
$til = $_POST[modtager];
$emne = $_POST[emne];
// Definér $boundary
// boundary er en unik streng der identifiserer vores email
$boundary = uniqid("");
// Siden det er en tekstfil, kender vi allerede MIME typen
$mimeType = "application/unknown";
// Læs filen ind i en variable
$fil_var = fread(fopen($_FILES['fileatt']['tmp_name'], "r"), filesize($_FILES['fileatt']['tmp_name']));
// Gør filen læsevenlig for email-klienten
$fil_var = base64_encode($fil_var);
// Laver lidt html-kode, hvor filen vises
$besked = "<font face=\"Trebuchet MS\" size=\"2\"><br>Filen så sådan her ud:<br><imc src=$fil><br><br>";
// Split filkoden op i linier med 76 tegn i hver
$fil_var = chunk_split($fil_var);
// Følgende lille stykke klarer det meste mht. headers, der fortæller email-klienten hvad der er på vej
// Vi sætter vores unikke streng ind her
$body = "\n--$boundary\n";
// Vi fortæller at følgende stump er af typen text/html samt
// hvilket tegnsæt vi bruger
$body .= "Content-type: text/html; charset=iso-8859-1\n";
$body .= "Content-transfer-encoding: 8bit\n\n";
// Vi sætter body-texten ind her
$body .= $besked."\n\n";
// Slut på brødteksten
$body .= "--$boundary\n";
// Så er det filens tur
// Vi fortæller lige mime-typen og filnavnet
$body .= "Content-type: $mimeType; name=".$fil."\n";
// Fortæller at vi vil have filen hæftet ved - ikke direkte i mailen.
// Vil du gerne have den direkte i mailen, ændres 'attachment' til 'inline'
// Bemærk: Bl.a. OE viser _også_ filen i selve mailen selvom du angiver 'attachment'
$body .= "Content-disposition: attachment; filename=".$fil."\n";
// Klienten skal have at vide at meddelelsen er encoded med base64
$body .= "Content-transfer-encoding: base64\n\n";
// Vi sætter filkoden ind
$body .= $fil_var."\n\n";
// Vi slutter af med den samme unikke streng som vi startede med
$body .= "--$boundary--";
// Vi definerer from-headeren
$headers = "From: ".$fra."<".$fra.">\n";
// Vi fortæller hvilken type indhold mailen indeholder
// samt emailens unikke id-streng
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"";
// Hvis mailen bliver sendt afsted problemfrit
if (mail($til, $emne, $body, $headers)) {
echo "Mailen er sendt!";
// Hvis ikke skriver vi lige en fejlmeddelelse
} else {
echo "Der opstod en fejl, og mailen blev ikke sendt!";
}
}
?>
<html>
<head>
<meta name="Generator" content="Stone's WebWriter 4" />
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
Afsenders email: <input type="text" name="email"><br>
Modtagers email: <input type="text" name="modtager"><br>
Emne i mail: <input type="text" name="emne"><br>
Teksten i mailen: <input type="text" name="indhold"><br>
Filen: <input type="file" name="fileatt"><br>
<input name="afsend" type="submit" value="Send email">
</form>
</body>
</html>
Meeen jeg kan ikke få det til, at putte filen ind i min html-kode. Jeg forudsætter, at den uploadede fil er et stykke grafik.
Hvad gør jeg galt?
Hilsen
Martin