ID: 48201 User updated by: carsten_sttgt at gmx dot de Reported By: carsten_sttgt at gmx dot de -Status: Feedback +Status: Open Bug Type: IMAP related Operating System: Windows_NT PHP Version: 5.3CVS-2009-05-09 (snap) New Comment:
> Please try using this CVS snapshot: I have test the above with: Version: 5.3.0RC3-dev Thu, 07 May 2009 13:08:08 +0000 Version: 5.2.10-dev Thu, 07 May 2009 11:42:06 +0100 (the latest binary snapshots which are available for VC6 x86 Thread Safe) (and my normal PHP 5.2.9 VC6 x86 Thread Safe) Can't test with: Version: 6.0.0-dev Thu, 07 May 2009 11:30:12 +0000 because "php_imap.dll" is missing in the zip. Previous Comments: ------------------------------------------------------------------------ [2009-05-09 21:07:15] [email protected] Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://windows.php.net/snapshots/ ------------------------------------------------------------------------ [2009-05-09 11:51:12] carsten_sttgt at gmx dot de Description: ------------ Hello, from my understanding, and if I read RFC2045-sec6.2, imap_mail_compose() is working in a wrong way. From RFC2045: - With "binary", "8bit" and "7bit" no transforming is done. - With "quoted-printable" and "base64", the data is transformed to 7bit, according to the selected encoding type. The behavior from imap_mail_compose(): - with ENC7BIT no Content-Transfer-Encoding header is set (ok, that's the same. maybe correct) - with ENC8BIT, the Content-Transfer-Encoding changes to "quoted-printable" and the data is transfomed (wrong) - with ENCBINARY, the Content-Transfer-Encoding changes to "base64" and the data is transfomed (wrong) - with ENCBASE64, the Content-Transfer-Encoding is "base64" and the data is transfomed (correct) - with ENCQUOTEDPRINTABLE, the Content-Transfer-Encoding is "quoted-printable" and the data is transfomed (correct) - ENCOTHER is imho not really useful (especially if I can't set the name (foo) in x-foo). Then I've tried to set the value for the Content-Transfer-Encoding header on my own: - with "binary", no Content-Transfer-Encoding header is set - with "8bit" (or "7bit"), I have a segmentation fault (PHP crashes). Regards, Carsten Reproduce code: --------------- <?php $data8bit = 'a german umlaut ä.'; $data7bit = 'just a text in us-ascii.'; $body = array(); $i = 0; $body[++$i] = array( 'type' => TYPEMULTIPART, 'subtype' => 'mixed' ); $body[++$i] = array( 'type' => TYPETEXT, 'charset' => 'us-ascii', 'encoding' => ENC7BIT, 'contents.data' => $data7bit ); $body[++$i] = array( 'type' => TYPETEXT, 'charset' => 'iso-8859-1', 'encoding' => ENC8BIT, 'contents.data' => $data8bit ); $body[++$i] = array( 'type' => TYPETEXT, 'charset' => 'iso-8859-1', 'encoding' => ENCBINARY, 'contents.data' => $data8bit ); $body[++$i] = array( 'type' => TYPETEXT, 'charset' => 'iso-8859-1', 'encoding' => ENCBASE64, 'contents.data' => $data8bit ); $body[++$i] = array( 'type' => TYPETEXT, 'charset' => 'iso-8859-1', 'encoding' => ENCQUOTEDPRINTABLE , 'contents.data' => $data8bit ); $body[++$i] = array( 'type' => TYPETEXT, 'charset' => 'iso-8859-1', 'encoding' => 'binary', 'contents.data' => $data8bit ); //$body[++$i] = array( // 'type' => TYPETEXT, // 'charset' => 'iso-8859-1', // 'encoding' => '8bit' , // 'contents.data' => $data8bit //); echo imap_mail_compose(array(), $body); ?> Expected result: ---------------- MIME-Version: 1.0 Content-Type: MULTIPART/mixed; BOUNDARY="62-22384-1241869364=:9856" --62-22384-1241869364=:9856 Content-Type: TEXT/PLAIN; CHARSET=us-ascii Content-Transfer-Encoding: 7BIT just a text in us-ascii. --62-22384-1241869364=:9856 Content-Type: TEXT/PLAIN; CHARSET=iso-8859-1 Content-Transfer-Encoding: 8BIT a german umlaut ä. --62-22384-1241869364=:9856 Content-Type: TEXT/PLAIN; CHARSET=iso-8859-1 Content-Transfer-Encoding: BINARY a german umlaut ä. --62-22384-1241869364=:9856 Content-Type: TEXT/PLAIN; CHARSET=iso-8859-1 Content-Transfer-Encoding: BASE64 YSBnZXJtYW4gdW1sYXV0IOQu --62-22384-1241869364=:9856 Content-Type: TEXT/PLAIN; CHARSET=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE a german umlaut =E4. --62-22384-1241869364=:9856 Content-Type: TEXT/PLAIN; CHARSET=iso-8859-1 Content-Transfer-Encoding: binary a german umlaut ä. --62-22384-1241869364=:9856-- Actual result: -------------- MIME-Version: 1.0 Content-Type: MULTIPART/mixed; BOUNDARY="62-22384-1241869364=:9856" --62-22384-1241869364=:9856 Content-Type: TEXT/PLAIN; CHARSET=us-ascii just a text in us-ascii. --62-22384-1241869364=:9856 Content-Type: TEXT/PLAIN; CHARSET=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE a german umlaut =E4. --62-22384-1241869364=:9856 Content-Type: TEXT/PLAIN; CHARSET=iso-8859-1 Content-Transfer-Encoding: BASE64 YSBnZXJtYW4gdW1sYXV0IOQu --62-22384-1241869364=:9856 Content-Type: TEXT/PLAIN; CHARSET=iso-8859-1 Content-Transfer-Encoding: BASE64 a german umlaut ä. --62-22384-1241869364=:9856 Content-Type: TEXT/PLAIN; CHARSET=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE a german umlaut ä. --62-22384-1241869364=:9856 Content-Type: TEXT/PLAIN; CHARSET=iso-8859-1 a german umlaut ä. --62-22384-1241869364=:9856-- ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=48201&edit=1
