Mijn bedoeling is een script te maken die een PDF-document genereert (veel tijd gekost, maar is gelukt en ik snap het nu) en (lijkt makkelijker) deze als een bijlage toemailt. Maar hierbij heb ik een probleem, de .pdf file wordt niet als bijlage maar als body van de e-mail gestuurd. Kan iemand me vertellen waar ik de mist in ga?
Gemailde e-mail:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| <?php error_reporting(E_ALL); $tijd = date('U'); $email = "dennis@dennisweb.com"; // enkele variabelen verwijderd (voor in de pdf file) // irrelevante pdf-generation code verwijderd $pdf->Output("/home/httpd/vhosts/dennis.nl/httpdocs/pdf/data/".$tijd.".pdf","F"); $file = "/home/httpd/vhosts/dennis.nl/httpdocs/pdf/data/".$tijd.".pdf"; $onderwerp = "Welkom bij Dennis Internetdiensten"; $bericht = "hoi"; $headers = "From: Dennis Internetdiensten <info@dennis.nl>\r\n"; $headers .= "Reply-To: Dennis Internetdiensten <info@dennis.nl>\r\n"; $headers .= "MIME-Version: 1.0\r\n"; //email bestaat uit meerdere bestanden dus vertel wat de scheidings teken is en dat het een multipart is $headers .= "Content-Type: multipart/mixed; boundary=\"".bound."\"\r\n"; //we zenden een attachment mee $headers .= "Content-Disposition: attachment\r\n"; //readfile $fp = fopen($file,'r'); $bestand = fread($fp,filesize($file)); fclose($fp); //create body //generenen een body. Dit is een multi part gezeik $body.= "This is a multi-part message in MIME format.\r\n"; $body.= "\r\n"; //boundary $body.= "--".bound."\r\n"; //content type + charater set (iso in dit geval) $body.= "Content-Type: text/plain; charset=iso-8859-1\r\n"; //codering (7 bit) $body.= "Content-Transfer-Encoding: 7bit\r\n"; $body.= "\r\n"; //het bericht $body.= $bericht; //boundary $body.= "--".bound."\r\n"; //content type + naam bestand (database.sql) $body .= "Content-Type: application/octet-stream; name=overeenkomst.pdf\r\n"; //codering $body .= "Content-Transfer-Encoding: base64\r\n"; //als bijlage toegevoegd $body.= "Content-disposition: attachment\r\n"; $body .= "\n"; //de inhoud van het bestand $body .= chunk_split(base64_encode($bestand )) . "\r\n"; mail($email,$onderwerp,$body,$headers); ?> |
Gemailde e-mail:
De body begint bij "hoi", dat zou ook eigenlijk de enige body-inhoud mogen zijn.Datum: 24 Jun 2005 12:50:28 -0000
Van: Dennis Internetdiensten <info@dennis.nl>
Aan: dennis@dennisweb.com
Onderwerp: Welkom bij Dennis Internetdiensten
hoi--bound
Content-Type: application/octet-stream; name=overeenkomst.pdf
Content-Transfer-Encoding: base64
Content-disposition: attachment
JVBERi0xLjMKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAy
IDAgUgovQ29udGVudHMgNCAwIFI+PgplbmRvYmoKNCAwIG9iago8PC9GaWx0ZXIgL0ZsYXRlRGVj
(en dit nog zo'n 35kg extra)