I came up with some code today. I started e-mailing myself file attachments to see what my e-mail program did in preparing them and when I opened the e-mails I changed the view to "show e-mail source".
The biggest challenge is the boundary that separates the e-mail message text from the file attachment. I found this command on php.net here to generate the boundary: $boundary = md5(uniqid(time())); Then it is like baking cookies --- You just fill in the pieces: You have to include $headers .= "Content-Type: multipart/mixed; boundary=\"". $boundary . "\"\r\n"; in the header field of the mail() function. (It is important the boundary has "'s around it) Then you have to have these lines before the text of the message (I have /html for creating an HTML based e-mail): $message = "--" . $boundary . " Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit {blank line} E-mail message text is here "; and then for the file attachment headers you put in these lines: $file_attachment_header = "--" . $boundary; $file_attachment_header .= "Content-Disposition: attachment; filename=finances.pdf\r\n"; $file_attachment_header .= "Content-Type: application/pdf; name=finances.pdf\r\n"; $file_attachment_header .= "Content-Transfer-Encoding: base64\r\n"; and then you convert your file over to 64 bit encoding $data = file_get_contents($file); chunk_split( base64_encode($data), 68, "\n"); #you want to limit each line to a certain number of characters, #in this example 68 so it will go through the mail server ok Now close off the e-mail with this final boundary $footer = "--" . $boudary . "--"; $message = $message . $file_attachment_header . $data . $footer; #file attachments and the file attachment headers are #really part of the e-mail message Then you issue the command mail($email_address, $email_subject, $message, $headers); Ron On Thu, 2006-05-11 at 18:33 -0400, Ron Piggott (PHP) wrote: > Does any one know how to send a file attachment using PHP? > > I have been using the mail() command to send e-mail in various scripts, > but have spotted a file attachment syntax to use on the php web page. > > Ron -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php