#39507 [Opn]: concurrent attempts to connect to SMTP relay fail miserably
| From: | rherror404 at gmail dot com | Date: | Tue, 14 Nov 2006 03:56:25 +0000 |
| Subject: | #39507 [Opn]: concurrent attempts to connect to SMTP relay fail miserably | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-104950@lists.php.net to get a copy of this message | ||
ID: 39507
User updated by: rherror404 at gmail dot com
Reported By: rherror404 at gmail dot com
Status: Open
Bug Type: Mail related
Operating System: Windows
PHP Version: 5.2.0
New Comment:
Is the mail() function sufficiently thread-safe under the Windows MPM
(for Apache)? I have to wonder if the two concurrent threads are
stepping on each other in their efforts to talk to the SMTP box.
Previous Comments:
------------------------------------------------------------------------
[2006-11-14 03:51:51] rherror404 at gmail dot com
To clarify, the bash snippet should read like this (see below). Line
14 contains the call to mail().
========================================
$ (curl "http://192.168.1.2/error.php"
&); (curl
"http://192.168.1.2/error.php" &)
$
Warning: mail(): SMTP server response: 503 5.0.0 foo.bar.com Duplicate
HELO/EHLO in C:\Program Files\Apache Group\Apache2\htdocs\error.php on
line 14
FALSE
Warning: mail(): Failed to Receive in C:\Program Files\Apache
Group\Apache2\htdocs\error.php on line 14
FALSE
$
------------------------------------------------------------------------
[2006-11-13 23:33:06] rherror404 at gmail dot com
s/on line 107/on line 14/g
------------------------------------------------------------------------
[2006-11-13 23:31:26] rherror404 at gmail dot com
Description:
------------
Hitting this script with two concurrent requests causes a failure of
both, each reporting different errors.
$ (curl "http://192.168.1.2/error.php"
&); (curl
"http://192.168.1.2/error.php" &)
$
Warning: mail(): SMTP server response: 503 5.0.0 foo.bar.com Duplicate
HELO/EHLO in C:\Program Files\Apache Group\Apache2\htdocs\error.php on
line 107
FALSE
Warning: mail(): Failed to Receive in C:\Program Files\Apache
Group\Apache2\htdocs\error.php on line 107
FALSE
$
Reproduce code:
---------------
<?
define('EXTRAHEADERS', "MIME-Version: 1.0\r\nContent-type: text/html;
charset=iso-8859-1\r\nX-Mailer: PHP\r\n");
define('MAILMSG',
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<html><head><title>foo</title><style type='text/css'>
body {margin: 0; font-size: 10pt; font-family: sans-serif, arial;
color: #000000; background-color: #ffffff;}
</style></head><body><div style='font-size: 12pt; background-color:
#ffff00;'>" . date("Y-m-d H:i:s") . "</div>
random junk<br />" .
str_repeat("afhlkhsad;lfj;lkjsa;lfjasd;lkjf;lkjsad;lkfjsad;lkfjsad;lkfjasd;lfkjasd;lkfjsa;ldf<br
/>\n", 100) .
"</body></html>");
ini_set('html_errors', FALSE);
ini_set('SMTP', '10.1.2.3'); // valid address for a SMTP relay
ini_set('sendmail_from', 'foo <do_not_reply@foo123.com>'); // fake
address
define('MAILTO', 'something@thatworks.com'); // something real
$retval = mail(MAILTO, 'foo', MAILMSG, EXTRAHEADERS);
echo ( $retval ? 'TRUE' : 'FALSE' ). "\n\n\n";
exit();
?>
Expected result:
----------------
If I run multiple concurrent requests, then I expect to get multiple
emails, one for each request.
Actual result:
--------------
The little shell command where I run two HTTP requests (using cURL in a
Cygwin bash) concurrently causes a failure of both, each reporting
different errors. It runs fine otherwise.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=39507&edit=1