|
Posted by "Gustav Wiberg" on 09/03/05 12:49
Hi there!
Can't it be anything with filepermissions? Just a clue...
/G
@varupiraten.se
----- Original Message -----
From: "M. Sokolewicz" <tularis@php.net>
To: <php-general@lists.php.net>; "Tom Rogers" <trogers@kwikin.com>
Sent: Saturday, September 03, 2005 10:49 AM
Subject: Re: [PHP] socket_read() trouble with PHP_BINARY_READ
> hello,
>
> thank you for the help, but I've tried your code, and it returns the exact
> same thing :( the error #11 temporarily unavailable. If I remove
> non-blocking, or change the error to ignore to 11 (10035 in your code
> example) it simply "hangs" doing nothing *at all*...
>
> I'm stumped; really.. thank you for trying though :)
>
> - tul
> Tom Rogers wrote:
>> Hi,
>>
>> Saturday, September 3, 2005, 9:19:11 AM, you wrote:
>> MS> hello,
>>
>> MS> I'm writing a socket approach to send email directly via an SMTP
>> server
>> MS> (since some hosts block sendmail trough php due to abuse). Now, I
>> have
>> MS> the code, attached below:
>> MS> I have cut it down slightly so it would still be readable though. I'm
>> MS> very sure that none of the stuff I removed actually matters in the
>> MS> problem though (mostly error chechking, logging, debug stuff, etc).
>>
>> MS> Ok, back to the problem. If I reread my log, I see the following
>> "output":
>> MS> S: 220 server -- Server ESMTP (iPlanet Messaging Server 5.2)
>> MS> C: HELO ip
>> MS> S:
>> MS> C: MAIL FROM: <me@example.com>
>> MS> S: 250 server OK, server2 [ip].
>> MS> C: RCPT TO: <you@example.com>
>> MS> S:
>> MS> C: RSET
>>
>> MS> Now, obviously, the server sends something back (I checked, manually,
>> MS> using telnet). So, I figured that the socket_read(socket, size, MS>
>> PHP_NORMAL_READ) was causing the problem. So I switched over to MS>
>> PHP_BINARY_READ to make sure I didn't miss anything (because it broke
>> MS> off eg. midways). So... after I changed that, I suddenly started
>> getting
>> MS> these errors:
>> MS> Warning: socket_read() unable to read from socket [11]: Resource MS>
>> temporarily unavailable in /home/me/scripts/mail.php on line 27
>>
>> MS> This goes for each attempt to read (even the first). I'm stumped...
>> and
>> MS> really don't know how to proceed now...
>>
>> MS> Does anyone have any clues?
>> MS> very appreciated,
>>
>> Because of this line the function returns straight away.
>>
>> MS> socket_set_nonblock($this->socket);
>>
>> You have to catch the 'not ready' error something like this:
>> (The error code was under windows)
>>
>> function get(){
>> $ret = '';
>> while(1){
>> $sbuf = @socket_read($this->connection, 1024, PHP_BINARY_READ);
>> if(false === $sbuf){
>> $error = socket_last_error($this->connection);
>> if($error != 10035){
>> echo "msgsock read() failed: reason: " .$error.' '.
>> socket_strerror (socket_last_error($this->connection)) . "\n";
>> return;//socket not happy
>> }
>> }else{
>> $buf_read = strlen($sbuf);
>> if($buf_read === 0) break; // end of text
>> $ret .= $sbuf;
>> }
>> }
>> return $ret;
>> }
>>
>>
>>
>>
>>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>
> --
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.344 / Virus Database: 267.10.18/89 - Release Date: 2005-09-02
>
>
[Back to original message]
|