#35906 [Opn->Fbk]: Date Header produces non-RFC date (works with PHP 5.1)
ID: 35906
Updated by: sniper@php.net
Reported By: brian at macserve dot net
-Status: Open
+Status: Feedback
Bug Type: Mail related
Operating System: Windows
PHP Version: 4.4.1
Assigned To: derick
New Comment:
Please try using this CVS snapshot:
http://snaps.php.net/php4-STABLE-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-STABLE-latest.zip
I just committed a fix for this. Please test in about 6 hours.
Previous Comments:
------------------------------------------------------------------------
[2006-01-05 23:15:50] derick@php.net
I am not the maintainer of Win32 mail code, I don't even have windows
so I can't test this. This is not a problem on any other OS than
Windows either, as that doesn't use the sendmail.c code.
------------------------------------------------------------------------
[2006-01-05 21:33:38] tony2001@php.net
Assigned to the maintainer.
------------------------------------------------------------------------
[2006-01-05 16:27:17] brian at macserve dot net
Description:
------------
The Date header that is generated in the mail() command is not RFC
compliant in that it generates 2 spaces right before the day of the
month, when there should only be one.
This trips spam filters that are looking for sloppy programming by
spammers.
Interstingly, date('r') produces a correctly spaced date:
Thu, 05 Jan 2006 08:51:13 -0600
Probably because the day of month is padded.
line 716 from 4.4.1's sendmail.c:
sprintf(header_buffer, "Date: %s, %02d %s %04d %02d:%02d:%02d
%s%02d%02d\r\n",
Looks like this was fixed in the 5.x branch by changing this to
effectively use: date('r') in response to bug # 29334
line 706:
char *dt = php_format_date("r", 1, tNow, 1 TSRMLS_CC);
sprintf(header_buffer, "Date: %s\r\n", dt);
Reproduce code:
---------------
$toAddress = 'brian@macserve.net';
$fromAddress = 'brian@macserve.net';
$extraParams = '-f'.$fromAddress;
$subj = 'Test Date Hdr';
$emailMsg = 'Test Message';
echo mail($toAddress, $subj, $emailMsg, '', $extraParams);
Expected result:
----------------
Date: Thu, 5 Jan 2006 08:51:03 -0600 (CST)
Actual result:
--------------
Date: Thu, 5 Jan 2006 08:51:03 -0600 (CST)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=35906&edit=1
Thread (8 messages)