Avatar billede t-rex Nybegynder
06. marts 2008 - 21:07 Der er 5 kommentarer

mail med fil att

Hey er der en der kan fortælle mig hvordan man får en fil felt mere på denne kode:

// Hvis din mail er sendt.
if(isset($_POST[afsend])) {

    $fil = $_FILES['fileatt']['name'];
    $fra = $_POST[email];
    $til = $_POST[modtager];
    $emne = $_POST[emne];
    $besked = $_POST[indhold];

    // 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 $mimeType; name=".$fil2."\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 attachment; filename=".$fil2."\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";
    $body .= $fil_var2."\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!";
    }
}

Mvh
Avatar billede jakobdo Ekspert
07. marts 2008 - 10:51 #1
Kig på phpmailer() og eksemplet her: http://phpmailer.codeworxtech.com/examples.html
$mail->AddAttachment("c:/temp/11-10-00.zip", "new_name.zip");  // optional name
Avatar billede t-rex Nybegynder
08. marts 2008 - 21:31 #2
Det er ikke helt det jeg søger da det bliver for svært at finde ud af... Det skal være noget simpel som det jeg har skrevet oven over... Og der må da være en nem måde at sætte to filer i en mail :-) jeg må dog indrømme jeg ikke kan finde ud af det.
Avatar billede jakobdo Ekspert
08. marts 2008 - 21:51 #3
Du får ikke noget mere simpelt end phpmailer().
Avatar billede t-rex Nybegynder
01. december 2008 - 18:06 #4
Lukker
Avatar billede jakobdo Ekspert
01. december 2008 - 20:00 #5
Hvad blev din løsning ?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Everllence

Software Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Kickstart din IT-karriere som IT-supporterelev på Flyvestation Aalborg

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Tech Lead til Datacenter Operations

Politiets Efterretningstjeneste

Platform Engineer med flair for MLOPS hos PET