Witam
Mam taki problem. Napisalem skrypt i musze wysyalc wiadomosc z lokalnego serwera www (debian+apache+php+mysql) na zewnatrz mejle do uzytkownikow. No i wlasnie jet problem bo nie moge skorzystac z serwera lokalnego (ktory stoi na windzie ale nasza siec nie rozpoznaje nazw tylko IP). No i wlasnie PEAR musi miec nazwe (np. smtp.poczta.onet.pl) a nie IP i wywala mi:
Cytat
unable to authenticate to smtp server


No to znalazlem na innym forum skrypt na socketach no i wyskakuje inny blad:
Cytat
Nie mogę się połączyć z serwerem SMTP! : 0 :
Warning: Supplied argument is not a valid File-Handle resource in /var/www/skrypty/socket/data_socket1.php on line 108
Couldn't get mail server response codes

W linii 108 jest cos takiego...
Kod
function server_parse($socket, $response)
{
   while ( substr($server_response,3,1) != ' ' )
   {
      if( !( $server_response = fgets($socket, 256) ) )
      {
         die("Couldn't get mail server response codes");
      }
   }
   if( !( substr($server_response, 0, 3) == $response ) )
   {
      die("Ran into problems sending Mail. Response: $server_response");
   }
}


No i teraz mam klopot bo niewiem jak to ominac. Bo tak wpisuje serwer wp tam jst autoryzacja, wpisuje wszystkie dane konta i dalej nie idzie. Moze ktos sie juz spotkal z czyms takim i wie jak cos takiego zadzialas. Bede bardzo wdzieczny za kazda informacje. A w sumie to wkleje caly kod zeby mozna bylo sprawdzic dlaczego to nie chodzi. Troche dlugi ale moze sie nie przestraszycie...
Kod
<?php
if(empty($_POST)){
?>
<FORM METHOD="post">
<B>Email odbiorcy: </B> <INPUT TYPE="TEXT" NAME="email"><BR>
<B>Temat listu: </B> <INPUT TYPE="TEXT" NAME="temat"><BR>
<B>Treść wiadomości:</B><BR>
<TEXTAREA NAME="tresc"></TEXTAREA><BR>
<INPUT TYPE="SUBMIT" VALUE="Wyślij">
</FORM>
<?php
}
else{
  $_POST['temat']=stripslashes($_POST['temat']);
  $_POST['tresc']=stripslashes($_POST['tresc']);
  if(smtpmail($_POST['email'], $_POST['temat'], $_POST['tresc'])){
    echo "Wiadomość została wysłana!";
  }
  else{
    echo "Wiadomość nie została wysłana!";
  }
}
?>
<?php>
//funkcja do wysylania mejli na socketach
$smtp_host="smtp.wp.pl"; // Adres smtp np. smtp.wp.pl
$smtp_username="user"; // Jeśli nie działa należy wpisać dane swojego konta (na wp nie trzeba);
$smtp_password="*****"; // j.w
$email="user@wp.pl"; // Adres od którego przychodzą maile, nie wiem czemu ale jakoś albo przychodzą od nikogo, albo od siebie samego :]

function smtpmail($mail_to, $subject, $message)
{
   global $smtp_host, $smtp_username, $smtp_password, $email;

    $message = preg_replace("/(?<!\r)\n/si", "\r\n", $message);
    if($mail_to == "")
   {
      echo "<B>Błąd: </B> Nie podałeś adresu odbiorcy!<BR>\n";
      return 0;
   }
   if(trim($subject) == "")
   {
      echo "<B>Błąd: </B> Nie podałeś tematu wiadomości!<BR>\n";
      return 0;
   }
   if(trim($message) == "")
   {
      echo "<B>Błąd: </B> Wiadomość jest pusta!<BR>\n";
      return 0;
   }
   $mail_to_array = explode(",", $mail_to);

   if( !$socket = fsockopen($smtp_host, 25, $errno, $errstr, 20) )
   {
      echo "Nie mogę się połączyć z serwerem SMTP! : $errno : $errstr<BR>\n";
   }
   server_parse($socket, "220");

   if( !empty($smtp_username) && !empty($smtp_password) )
   {
      fputs($socket, "EHLO " . $smtp_host . "\r\n");
      server_parse($socket, "250");
      fputs($socket, "AUTH LOGIN\r\n");
      server_parse($socket, "334");
      fputs($socket, base64_encode($smtp_username) . "\r\n");
      server_parse($socket, "334");
      fputs($socket, base64_encode($smtp_password) . "\r\n");
      server_parse($socket, "235");
   }
   else
   {
      fputs($socket, "HELO " . $smtp_host . "\r\n");
      server_parse($socket, "250");
   }

   fputs($socket, "MAIL FROM: <" . $email . ">\r\n");
   server_parse($socket, "250");

   $to_header = "To: ";
   @reset( $mail_to_array );
   while( list( , $mail_to_address ) = each( $mail_to_array ))
   {
      $mail_to_address = trim($mail_to_address);
      if ( preg_match('/[^ ]+\@[^ ]+/', $mail_to_address) )
      {
         fputs( $socket, "RCPT TO: <$mail_to_address>\r\n" );
         server_parse( $socket, "250" );
      }
      $to_header .= ( ( $mail_to_address != '' ) ? ', ' : '' ) . "<$mail_to_address>";
   }
   fputs($socket, "DATA\r\n");
   server_parse($socket, "354");
   fputs($socket, "Subject: $subject\r\n");
   fputs($socket, "$to_header\r\n");
   fputs($socket, "$headers\r\n\r\n");
   fputs($socket, "$message\r\n");
   fputs($socket, ".\r\n");
   server_parse($socket, "250");
   fputs($socket, "QUIT\r\n");
   fclose($socket);

   return TRUE;
}
function server_parse($socket, $response)
{
   while ( substr($server_response,3,1) != ' ' )
   {
      if( !( $server_response = fgets($socket, 256) ) )
      {
         die("Couldn't get mail server response codes");
      }
   }

   if( !( substr($server_response, 0, 3) == $response ) )
   {
      die("Ran into problems sending Mail. Response: $server_response");
   }
}
?>


Jakby ktos zajrzal do tej funkcji i zobaczyl czemu takie blad wyskkuje. Z tego co gosc napisal to podobno chodzi ta funkcja na serwerach gdzie jest wylaczona funkcja mail(). Z gory WIELKIE DZIEKI za kazde info...

Pozdro Swaper