![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 13.09.2004 Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 01:59 |