From: vlada dot misic at service24 dot at Operating system: w2k/xp/win 2003 PHP version: 4.3.9 PHP Bug Type: Mail related Bug description: broken email with attachments
Description: ------------ The problem is that mail function does not parse correct parameters when sending emails. It does not prints out all new line characters which are sent in the header. I marked those missing \n in the example. I also found the same problem here http://aspn.activestate.com/ASPN/Mail/Message/php-windows/2508303 I made a lot of tests and seem to be general problem on any windows platform or version of PHP. When I open the source of broken email and just add those four missing \n in the ascii editor the email becomes correct and attacment also. I also noticed that all \n chars missing in the message body. So I think it is general problem with \n chars in the process of generating email message. Reproduce code: --------------- $header .= "Content-Type: multipart/mixed; boundary=$uid\n\n"; $header .= "--$uid\n"; $header .= "Content-Type: text/plain;\n"; $header .= "\t"; $header .= "charset=\"iso-8859-1\"\n"; $header .= "Content-Transfer-Encoding: quoted-printable\n\n"; //the second \n is missing $header .= "$message\n\n"; //the second \n is missing $header .= "--$uid\n"; $header .= "Content-Type: application/msword;\n"; $header .= "\t"; $header .= "name=\"invoice.doc\"\n"; $header .= "Content-Transfer-Encoding: base64\n"; $header .= "Content-Disposition: attachment;\n"; $header .= "\t"; $header .= "filename=\"invoice.doc\"\n\n"; //the second \n is missing $invoice = chunk_split(base64_encode($invoice)); $header .= "$invoice\n\n"; //the second \n is missing $header .= "--$uid\n"; Expected result: ---------------- Content-Type: multipart/mixed; boundary=_NextPart_5901498AE5B7167A32D274DEED0E3965 Return-Path: [EMAIL PROTECTED] Message-ID: <[EMAIL PROTECTED]> X-OriginalArrivalTime: 08 Mar 2005 00:06:57.0578 (UTC) FILETIME=[BE4B58A0:01C52372] --_NextPart_5901498AE5B7167A32D274DEED0E3965 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Some content - first line some content - third line (one is empty) --_NextPart_5901498AE5B7167A32D274DEED0E3965 Content-Type: application/msword; name="invoice.doc" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="invoice.doc" 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAACAAAApwAAAAAAAAAA ...... !!!! not complete attachment since it is irrelevant !!!! ..... AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= --_NextPart_5901498AE5B7167A32D274DEED0E3965 Actual result: -------------- Content-Type: multipart/mixed; boundary=_NextPart_5901498AE5B7167A32D274DEED0E3965 Return-Path: [EMAIL PROTECTED] Message-ID: <[EMAIL PROTECTED]> X-OriginalArrivalTime: 08 Mar 2005 00:06:57.0578 (UTC) FILETIME=[BE4B58A0:01C52372] --_NextPart_5901498AE5B7167A32D274DEED0E3965 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Some content - first line some content - third line (one is empty) --_NextPart_5901498AE5B7167A32D274DEED0E3965 Content-Type: application/msword; name="invoice.doc" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="invoice.doc" 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAACAAAApwAAAAAAAAAA ...... !!!! not complete attachment since it is irrelevant !!!! ..... AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= --_NextPart_5901498AE5B7167A32D274DEED0E3965 -- Edit bug report at http://bugs.php.net/?id=32228&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=32228&r=trysnapshot4 Try a CVS snapshot (php5.0): http://bugs.php.net/fix.php?id=32228&r=trysnapshot50 Try a CVS snapshot (php5.1): http://bugs.php.net/fix.php?id=32228&r=trysnapshot51 Fixed in CVS: http://bugs.php.net/fix.php?id=32228&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=32228&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=32228&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=32228&r=needscript Try newer version: http://bugs.php.net/fix.php?id=32228&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=32228&r=support Expected behavior: http://bugs.php.net/fix.php?id=32228&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=32228&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=32228&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=32228&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=32228&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=32228&r=dst IIS Stability: http://bugs.php.net/fix.php?id=32228&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=32228&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=32228&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=32228&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=32228&r=mysqlcfg