Avatar billede qualon1 Nybegynder
08. december 2004 - 16:21 Der er 13 kommentarer og
1 løsning

Vedhæfte fil i email

Hej..

Jeg vil gerne have sådan at jeg kan vedhæfte en fil når jeg bruger funktionen mail();
Jeg ved hvordan man laver det om så man bruger html men hvordan vedhæfter jeg en fil?
Avatar billede googolplex Novice
08. december 2004 - 16:37 #1
Jeg vil foreslå at du bruger en klasse som http://phpmailer.sourceforge.net/, det gør afsending af mails som html, med en eller flere attachments meget nemmere.
Avatar billede coderdk Praktikant
08. december 2004 - 17:31 #2
Det vil jeg også! Det gøres ved at sende mailen i multipart/mixed
Et lille eksempel på hvad du skal gøre selv, hvis du ikke bruger noget som phpmailer:

    $fil = "test.jpg";
    $filmime = "image/jpeg";
    $attachment = chunk_split( base64_encode( file_get_contents( $fil ) ) );
    $besked = "Hej med dig!";
    $adskiller = "--=_MultiPart.Adskiller.00001";
    $fra = "dig@example.dk";
    $til = "person@example.dk";
    $emne = "testmail med vedhæftning!";
   
    $headers = "From: $fra\r\nReply-To: $fra\r\nContent-Type: multipart/mixed;\r\n\tboundary=\"$adskiller\"\r\nX-Mailer: Mail fra et php script!\r\n\r\nDette er en multi-part mail i MIME-format!\r\n\r\n--$adskiller\r\nContent-Type: text/plain;\r\n\tcharset=\"iso-8859-1\"\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n$besked\r\n\r\n--$adskiller\r\nContent-Type: $filmime;\r\n\tname=\"$fil\"\r\nContent-Transfer-Encoding: base64\r\nContent-Disposition: attachment;\r\n\tfilename=\"$fil\"\r\n\r\n$attachment\r\n\r\n--$adskiller";
   
    mail( $til, $emne, "", $headers );
Avatar billede coderdk Praktikant
08. december 2004 - 17:32 #3
Det er ikke så svært, det er bare besværligt ;)
Avatar billede qualon1 Nybegynder
09. december 2004 - 09:10 #4
hmmm det er nok godt nok... men delen:
$filmime = "image/jpeg";
volder problemer.... Hvis nu det er pdf fil... doc fil.. txt fil osv... hvad skal jeg så ændre det til? kan jeg finde en liste? eller en function der finder ud af det ved at bruge den fil jeg vil sende?
Avatar billede coderdk Praktikant
09. december 2004 - 09:54 #5
Hvis det bare er en som folk skal kunne vælge "Gem som" på, så skriv: "application/octet-stream" :)
Avatar billede coderdk Praktikant
09. december 2004 - 09:55 #6
Jeg har lavet en lille klasse til det, som gøre det meget nemt ;) Vil du have en kopi?
Avatar billede qualon1 Nybegynder
09. december 2004 - 13:31 #7
ja hvis jeg må... men også lige en exsempel så jeg kan se hvordan den virker... det gør det nemmere for mig...
Avatar billede coderdk Praktikant
09. december 2004 - 13:36 #8
Klassen:

http://coder.dk/examples/wsMailer.phps

Et eksempel på hvordan den virker:

<?php

    require_once( "wsMailer.php" );

    $mail = new wsMailer;
    $mail->from( "dig@example.com", "wsMailer!" );

    $mail->to( "person@example.com", "Et navn" );
    $mail->to( "person1@example.com" );
    $mail->cc( "person3@example.com" );
    $mail->cc( "person4@example.com", "Et andet navn" );
    $mail->bcc( "person5@example.com" );
    $mail->subject( "Dette er en testmail!" );
    $mail->attach( "test.jpg" );
    $mail->attach( "dokument.doc", "application/octet-stream" );
    $mail->htmlmail( "<h1>Hej med dig!</h1>\nDette er en mail! æøå! hahaha!" );
    $mail->send();

    // Send en mail mere!
    $mail->clear();
    $mail->to( "dig@example.com" );
    $mail->subject( "Et emne" );
    $mail->textmail( "Dette er en ren tekstmail!" );
    $mail->send();
   
?>
Avatar billede coderdk Praktikant
09. december 2004 - 13:39 #9
Måske eksemplet skulle ændres lidt:

  $mail->send();

Ændres til:

  if ( $mail->send() )
  {
    echo "Mail sendt!";
  }
  else
  {
    echo "Mail blev ikke sendt...";
  }
Avatar billede coderdk Praktikant
13. december 2004 - 02:03 #10
Fået det til at fungere?
Avatar billede coderdk Praktikant
18. december 2004 - 13:54 #11
Hallo? :)
Avatar billede qualon1 Nybegynder
18. december 2004 - 14:44 #12
har ikke rigtig prøvet da jeg ikke forstår classes
Avatar billede coderdk Praktikant
18. december 2004 - 14:46 #13
Kan du ikke bare bruge det eksempel jeg har lavet?
Avatar billede dotcom1 Nybegynder
18. december 2004 - 14:49 #14
Eller dette udmærkede færdige script... http://www.mylittlehomepage.net/form_mail_script.html
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