burewar

Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Не знаю, на сколько мой вопрос влазит во всю эту тему.... Может мне с такими вопросами в Андеграунд, с другой стороны у меня вопрос про php... Использую этот код, для отправки писем напрямую, через smtp: Код: <? $ToUser = "username@mail.ru"; $SMTPServer = "mx9.mail.ru"; $mail = smtp_open($SMTPServer, 25); $subject = "tESt...."; $message = "\n\r tEsT msg!"; $FromUser = "someuser@mail.ru"; smtp_helo($mail); smtp_mail_from($mail, $FromUser); smtp_rcpt_to($mail, $ToUser); smtp_data($mail, $subject, $message); smtp_quit($mail); function smtp_open($server, $port) { global $SMTP_GLOBAL_STATUS; $smtp = fsockopen($server, $port); if ($smtp < 0) return 0; $line = fgets($smtp, 1024); $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1); $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024); if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] <> "2") return 0; return $smtp; } function smtp_helo($smtp) { global $SMTP_GLOBAL_STATUS; fputs($smtp, "helo localhost\r\n"); $line = fgets($smtp, 1024); $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1); $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024); if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] <> "2") return 0; return 1; } function smtp_mail_from($smtp, $from) { global $SMTP_GLOBAL_STATUS; fputs($smtp, "MAIL FROM: <$from>\r\n"); $line = fgets($smtp, 1024); $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1); $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024); if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] <> "2") return 0; return 1; } function smtp_rcpt_to($smtp, $to) { global $SMTP_GLOBAL_STATUS; fputs($smtp, "RCPT TO: <$to>\r\n"); $line = fgets($smtp, 1024); $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1); $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024); if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] <> "2") return 0; return 1; } function smtp_data($smtp, $subject, $data) { global $SMTP_GLOBAL_STATUS; fputs($smtp, "DATA\r\n"); $line = fgets($smtp, 1024); $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1); $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024); if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] <> "3") return 0; fputs($smtp, "Mime-Version: 1.0\r\n"); fputs($smtp, "Organization: PHP\r\n"); fputs($smtp, "Subject: $subject\r\n"); fputs($smtp, "$data\r\n\r\n"); fputs($smtp, ".\r\n"); $line = fgets($smtp, 1024); if (substr($line, 0, 1) <> "2") return 0; return 1; } function smtp_quit($smtp) { global $SMTP_GLOBAL_STATUS; fputs($smtp, "QUIT\r\n"); $line = fgets($smtp, 1024); $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1); $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024); if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] <> "2") return 0; return 1; } ?> | Пробовал его на Microsoft SMTPSVC(IIS), Small HTTP Server(А в нём мэйл сервер). Пробовал, работает, письма отправляет. Но только в локальной сети, как только речь заходит о mail.ru - выходит пшык (т.е. ничего не выходит)! Если вы скажете, что это я на мэйл.ру без авторизации лезу. Так я отвечу - я знаю, что без авторизации, но возьмём для примеру прогу (подразумеваю exe), написанную на Delphihttp://www.borland.com которая с радостью отправляет письма без авторизации, используя mx9.mail.ru и порт 25. Цитата: Заголовок: From someuser@mail.ru Mon Feb 10 16:20:55 2003 Envelope-to: mymail@mail.ru Delivery-date: Mon, 10 Feb 2003 16:20:55 +0300 Received: from host.ru ([XX.XXX.XXX.XXX] helo=mx9.mail.ru) by mx9.mail.ru with smtp (Exim MX.9) id 18iDrV-0002qd-00 for mymail@mail.ru; Mon, 10 Feb 2003 16:20:43 +0300 From: "tESt" <someuser@mail.ru> Organization: any To: mymail@mail.ru Subject: test subject... Content-Type: text/plain X-Mailer: Mailer X-Priority: 3 (Normal) Message-Id: <E18iDrV-0002qd-00@mx9.mail.ru> Date: Mon, 10 Feb 2003 16:20:43 +0300 | Ну и отсюда вопрос, что я делаю не так? |