You are here: Re: [PHP] Attaching a pdf in email (no body text displays) « PHP « IT news, forums, messages
Re: [PHP] Attaching a pdf in email (no body text displays)

Posted by Chris on 07/21/05 08:36

I've attached some comments inline.

Ade Smith wrote:

>I am attaching a PDF document to an email, this part works great, however to
>get this to work it prevents the text in the body of the message to be
>displayed, what am I doing wrong? Here is the code
>
>
>
>$filename = " confirmation.pdf";
>
>if(!($fp = fopen($filename, "r"))):
>
> $error = "Can't open file";
>
> echo $error;
>
> exit;
>
>endif;
>
>
>
>$boundary = "b" . md5(uniqid(time()));
>
>$boundary='"'.$boundary.'"';
>
>
>
>$attach = fread($fp, filesize($filename));
>
>$attach = chunk_split(base64_encode($attach));
>
>
>
>$mime = "from: pdf@domain.com\n";
>
>$mime .= "Content-type: multipart/mixed; boundary=$boundary";
>
>
>
>$mime .= "--$boundary\r\n";
>
>$mime .= "Content-type: application/pdf; name=\"confirmation.pdf\"\r\n";
>
>$mime .= "Content-Transfer-Encoding: base64\r\n\r\n";
>
>$mime .= "Content-Disposition: attachment;\r\n";
>
>$mime .= "\r\n\r\n$attach\n";
>
>
>
>
It's been while, but shouldn't this line read:

$mime .= "\r\n$attach\r\n";

Just to ensure that no extra characters get included witht he file? I
don't think it matters much with PDFs, but it would definitely break
other files.

>$mime .= "--$boundary\r\n";
>
>$mime .= "Content-Type: text/HTML; charset=iso-8859-1\r\n";
>
>$mime .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
>
>$mime .= "test test test";
>
>$mime .= "--$boundary\r\n";
>
>
>
>
You forgot the trailing -- here, so this line should read:

$mime .= "--$boundary--\r\n";

Otherwise the mail clients assume there is another part to the MIME
message (which defaults to empty). And the last part is always the one
that is intended to be viewed. , So it displays the empty one.

>mail("user@domain.com","Your Confirmation: $confirmation_number","test test
>test test test",$mime);
>
>

Once again, it's been awhile, but I believe the best way to do this is
to put only the main body headers into the header variable ($mime in
this case), and put the parts in the body So the body itself is split
into the parts.

This is probably contributing to the problem as well.

Chris

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация