We hebben een systeem gebouwd dat automagisch pdfjes genereerd en dan kunnen mensen deze toevoegen aan hun mapje. Met een druk op een button krijgen ze dan de geselecteerde attachments met een begeleidend mailtje thuisgestuurd.
Dit werkt allemaal prima, zowel op mac als op pc en we hebben totaal geen problemen ermee. Echter de klant ontvangt in zijn mailbox de bron van het mailtje, of in ieder geval een gedeelte ervan. Hieronder het stuk code dat van belang is:
Dit gedeelte verstuurd gewoon een mailtje met een gegeven aantal attachments en een gegeven bron. We zijn ten einde raad want wij kunnen er niks verkeerds in vinden.
Deze output krijgt de klant op z'n scherm:
daaronder komt dan de base64_encode versie van het pdfje....
Dit werkt allemaal prima, zowel op mac als op pc en we hebben totaal geen problemen ermee. Echter de klant ontvangt in zijn mailbox de bron van het mailtje, of in ieder geval een gedeelte ervan. Hieronder het stuk code dat van belang is:
PHP:
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
| function xmail($email_address, $attach_filepath, $email_from = "mailer@....nl", $subject = "", $msg = "") { $b = 0; $mail_attached = ""; $boundary = md5(uniqid(time(),1))."_xmail"; if (count($attach_filepath)>0) { for ($a=0;$a<count($attach_filepath);$a++) { if ($fp = fopen($attach_filepath[$a][0],"rb")) { $file_name = basename($attach_filepath[$a][0]); $content[$b] = fread($fp,filesize($attach_filepath[$a][0])); $mail_attached .= "--".$boundary."\r\n" . "Content-Type: application/pdf; name=\"" . $attach_filepath[$a][1] . "\"\r\n" . "Content-Transfer-Encoding: base64\r\n" . "Content-Disposition: inline; filename=\"" . $attach_filepath[$a][1] . "\"\r\n\r\n" .chunk_split(base64_encode($content[$b]))."\r\n"; $b++; fclose($fp); } else { echo "Nee"; } } $mail_attached .= "--".$boundary."--\r\n"; $add_header ="MIME-Version: 1.0\r\nContent-Type: multipart/mixed; boundary=\"$boundary\""; $mail_content = "--".$boundary."\r\n" . "Content-Type: text/plain; charset=iso-8859-1; format=flowed\r\n" . "Content-Transfer-Encoding: 8bit\r\n\r\n" . $msg."\r\n\r\n".$mail_attached; return mail($email_address,$subject,$mail_content,"From: ".$email_from."\r\n".$add_header); } else { return mail($email_address,$subject,$msg,"From: ".$email_from); } } |
Dit gedeelte verstuurd gewoon een mailtje met een gegeven aantal attachments en een gegeven bron. We zijn ten einde raad want wij kunnen er niks verkeerds in vinden.
Deze output krijgt de klant op z'n scherm:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 8bit Geachte heer , en dan hier de messagebody ---------------------------------------------------------------------------- Content-Type: application/pdf; name="lala_499.pdf" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="lala_499.pdf" hier staat dan de base64_encode versie van het pdfje.... ---------------------------------------------------------------------------- |
daaronder komt dan de base64_encode versie van het pdfje....