14. april 2005 - 11:11Der er
34 kommentarer og 1 løsning
Send fil via mail
Hej eksperter, jeg har spurgt før, men har virkelig et problem. Kan godt få vedhæftet text og headers, men min body tekst er ikke med. Hvad gør jeg forkert???
// 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);
// 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/plain samt // hvilket tegnsæt vi bruger $body .= "Content-type: text/plain; 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!"; } } ?>
Jeg syntes ikke den blev åbnet??? Kunne jeg få dig til at maile scriptet til mig. Det kikser helt for mig. Ved du evt. om der er forskel på om du sender det fra andre servere eller noget i den duer????
Endnu et spørgsmål, hvis man gerne vil sende flere filer kan dette nemt sættes op til dette eller er det håbløst. Jeg har prøvet at ændre lidt i scriptet og sat ny boks ind, men det virker ikke, Sender kun den ene fil.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.