Alexandre
PHPПенсионер
не отправляется email при сокетном соединении
email через телнет отправляется.
коннекция с смтп открывается а дальше
если после каждого fputs($connection, "...\n"); $res=fgets($connection,1); выдает
пытался ставить set_socket_blocking($connection, false); но нет изменений.
вообще-то после каждого fputs($connection,"..."); я должен что-то прочитать fgets
если я вместо чтения 1 символа ставлю 256, то скрипт просто виснет.
email через телнет отправляется.
PHP:
function xSend($host, $port, $to,$subject,$headers,$message)
{
$from="[email protected]";
$connection = fsockopen ($host, $port, &$errno, &$errstr, 1);
if (!$connection)
{
die (" connection to $host failed $errstr \n");
return false;
}
$res=fgets($connection,256);
print $res."\n";
fputs($connection, "HELO \n");
set_socket_blocking($connection, true);
$res=fgets($connection,1);
print $res;
print_r (socket_get_status($connection)) ;
fputs($connection, "MAIL FROM: $from\n");
$res=fgets($connection,1);
print $res;
print_r (socket_get_status($connection)) ;
fputs($connection, "RCPT TO: $to\n");
$res=fgets($connection,1);
print $res;
fputs($connection, "DATA\n");
$res=fgets($connection,1);
print $res;
fputs($connection, "To: $to\nFrom: $from\nSubject: $subject\n$headers\n\n$message\n.\n");
$res=fgets($connection,1);
print $res;
fputs($connection,"QUIT\n");
$res=fgets($connection,1);
print $res;
return true;
}
Код:
220 sendout-h Microsoft ESMTP MAIL Service, Version: 6.0.3790.0 ready at Wed, 23 Aug 2006 18:58:17 +0400
Код:
Array
(
[stream_type] => socket
[unread_bytes] => 0
[timed_out] =>
[blocked] => 1
[eof] =>
)
вообще-то после каждого fputs($connection,"..."); я должен что-то прочитать fgets
если я вместо чтения 1 символа ставлю 256, то скрипт просто виснет.