ID: 41297 User updated by: mattyrobuk at googlemail dot com Reported By: mattyrobuk at googlemail dot com -Status: Bogus +Status: Open Bug Type: Mail related Operating System: All PHP Version: 5.2.2 New Comment:
I've spent the last 24 hours messing around with the command line version of sendmail on my Mac. If you create a file as follows: <!-- file start --> From: <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> bcc: <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]> Subject: This is a Postfix Sendmail Test This message is sent with the sendmail front end from the postfix mail system <!-- file end --> And then send it via sendmail with: cat filename | /usr/sbin/sendmail -t -bp -v Both of the BCC recipients get the email, note the line break between addresses. I would propose that this means that sendmail is correctly coping with line breaks in the bcc header. This points back to an issue in PHP mail() when passing headers with line breaks to the sendmail binary on Unices. This is why I have re- opened this bug ticket. Previous Comments: ------------------------------------------------------------------------ [2007-05-05 18:37:37] mattyrobuk at googlemail dot com ",\r\n " should be a valid inclusion within a BCC header according to the RFC standards. If the BCC string is being passed direct to sendmail by the PHP mail() function unchanged then perhaps it is a bug in sendmail on in server configuration however this is a consistent issue on several different servers so I thought it might be a PHP bug. ------------------------------------------------------------------------ [2007-05-05 15:14:52] [EMAIL PROTECTED] Ilia, that's not how I read the RFC 2822 (http://www.faqs.org/rfcs/rfc2822.html, section 2.2.3): "The process of moving from this folded multiple-line representation of a header field to its single line representation is called "unfolding". Unfolding is accomplished by simply removing any CRLF that is immediately followed by WSP. Each header field should be treated in its unfolded form for further syntactic and semantic evaluation." So unless the normal BCC header does not allow a space there, the header as specified is totally valid. However, I still don't see how this is a bug in PHP, as we simply pass on the headers to the sendmail binary on Unices. ------------------------------------------------------------------------ [2007-05-05 14:55:25] [EMAIL PROTECTED] Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php You need to take out the space in front on the Bcc header. ------------------------------------------------------------------------ [2007-05-05 14:51:23] mattyrobuk at googlemail dot com Description: ------------ RFC 822 and RFC2822 demand that the bcc header line is not more than 998 characters long but allows for inclusion of folding whitespace (\r\n). Including \r\n in the BCC header causes additional email addresses in the BCC header to be ignored by the mail() function. Reproduce code: --------------- $to = '[EMAIL PROTECTED]'; $subject = 'Test message'; $body = 'Test message.'; $headers = 'From: Administrator <[EMAIL PROTECTED]>' . "\r\n"; $headers .= 'MIME-Version: 1.0' . "\r\n"; $headers .= 'bcc: [EMAIL PROTECTED],\r\n [EMAIL PROTECTED]' . "\r\n"; Expected result: ---------------- Email should be sent to [EMAIL PROTECTED] and BCC'd to [EMAIL PROTECTED] AND [EMAIL PROTECTED] Actual result: -------------- Email is sent to [EMAIL PROTECTED] and BCC'd to [EMAIL PROTECTED] [EMAIL PROTECTED] never gets the email. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=41297&edit=1
