Ответов: 13 Просмотров: 9522
|
Взял исходник http://www.php.su/articles/?cat=email&page=007:
PHP:
скопировать код в буфер обмена
<?PHP function get_data($smtp_conn) { $data=""; while($str = fgets($smtp_conn,515 )) { $data .= $str; if(substr($str,3,1) == " ") { break; } } return $data; } $header="Date: ".date("D, j M Y G:i:s")." +0700\r\n"; $header.="X-Mailer: The Bat! (v3.99.3) Professional\r\n"; $header.="X-Priority: 3 (Normal)\r\n"; $header.="Message-ID: <172562218.".date("YmjHis")."@mail.ru>\r\n"; $header.="MIME-Version: 1.0\r\n"; $header.="Content-Type: text/plain; charset=windows-1251\r\n"; $header.="Content-Transfer-Encoding: 8bit\r\n"; $text="привет, проверка связи."; $smtp_conn = fsockopen("smtp.mail.ru", 25 ,$errno, $errstr, 10 ); if(!$smtp_conn) {print "соединение с серверов не прошло"; fclose($smtp_conn); exit;} $data = get_data($smtp_conn); fputs($smtp_conn,"EHLO mail.ru\r\n"); $code = substr(get_data ($smtp_conn),0 ,3 ); if($code != 250 ) {print "ошибка приветсвия EHLO"; fclose($smtp_conn); exit;} fputs($smtp_conn,"AUTH LOGIN\r\n"); $code = substr(get_data ($smtp_conn),0 ,3 ); if($code != 334 ) {print "сервер не разрешил начать авторизацию"; fclose($smtp_conn); exit;} $code = substr(get_data ($smtp_conn),0 ,3 ); if($code != 334 ) {print "ошибка доступа к такому юзеру"; fclose($smtp_conn); exit;} $code = substr(get_data ($smtp_conn),0 ,3 ); if($code != 235 ) {print "не правильный пароль"; fclose($smtp_conn); exit;} fputs($smtp_conn,"MAIL FROM:login@mail.ru\r\n"); $code = substr(get_data ($smtp_conn),0 ,3 ); if($code != 250 ) {print "сервер отказал в команде MAIL FROM"; fclose($smtp_conn); exit;} fputs($smtp_conn,"RCPT TO:qwe@asd.ru\r\n"); $code = substr(get_data ($smtp_conn),0 ,3 ); if($code != 250 AND $code != 251 ) {print "Сервер не принял команду RCPT TO"; fclose($smtp_conn); exit;} fputs($smtp_conn,"DATA\r\n"); $code = substr(get_data ($smtp_conn),0 ,3 ); if($code != 354 ) {print "сервер не принял DATA"; fclose($smtp_conn); exit;} fputs($smtp_conn,$header."\r\n".$text."\r\n.\r\n"); $code = substr(get_data ($smtp_conn),0 ,3 ); if($code != 250 ) {print "ошибка отправки письма"; fclose($smtp_conn); exit;} fputs($smtp_conn,"QUIT\r\n"); ?>
Подставил все данные, авторизацию прошёл успешно но выдаёт "ошибка отправки письма". В чём может быть проблема? |