By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
454,716 Members | 1,431 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 454,716 IT Pros & Developers. It's quick & easy.

sending files attached via mail. what's wrong?

P: n/a
i wanna send html files (even *.doc) in the body of a mail with this code:

<?
$userfile = "file.html";
$fp = fopen($userfile, "r");
$file = fread($fp, filesize($userfile));
$file = chunk_split(base64_encode($file));

$email_boundary = md5(uniqid(time()));
$email_headers = "MIME-Version: 1.0\r\n";
$email_headers .= "Content-type: multipart/mixed;boundary=\"$email_boundary
\"";
$email_headers .= "X-attachments: $file\n";
$email_headers .= "\r\n\r\n";

$email_body = "-$email_boundary\n";
$email_body .= "Content-type: text/html; charset=iso-8859-1\r\n";
$email_body .= "Content-transfer-encoding: 8bit\r\n\r\n";
$email_body .= "-$email_boundary\r\n";
$filename = basename($userfile);
$email_body .= "Content-type: application/octet-stream; name=$filename\r\n";
$email_body .= "Content-transfer-encoding:base64\r\n\r\n";
$email_body .= $file. "\r\n\r\n";
$email_body .= "--$email_boundary--";

mail("em***@destinatario.it", "Invio", $email_headers, $email_body);

?>

unfortunatley, even if the mail arrive, in the body i read only the code of
the file but cannot read it.
WHERE IS THE MISTAKE?
PLEASE HELP!!!!!!

daniele

p.s. i also tried this:
mail("em***@destinatario.it", "Invio", $email_body, $email_headers);
but there was no file attached
Jul 17 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Agenzia Petracca wrote:
i wanna send html files (even *.doc) in the body of a mail with this code:
[Code snipped.]
WHERE IS THE MISTAKE?


Well, here are some mistakes:

1. Missing linebreak at the end of a header line.

2. Boundaries prefixed with a single hyphen.

3. No data in the "HTML" part.

4. Not providing a text/plain alternative (even worse mistake:
sending so-called HTML mail in the first place).

There are more.

You could read the article referenced from The Manual; or, rather
than reinventing the wheel, you might try a class prewritten for
this purpose, such as M. Lemos' class. (I haven't used it and
therefore can't vouch for it.)
http://www.phpclasses.org/mimemessage

--
Jock
Jul 17 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.