HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Мыло через socket в PHP
  #1  
Старый 28.01.2006, 22:16
errou
Новичок
Регистрация: 27.01.2006
Сообщений: 8
С нами: 10675887

Репутация: 0
По умолчанию Мыло через socket в PHP

Народ, помогите, пожалуйста!
Решил написать простецкий скрипт отправки почты. Проверил nslookup-ом сервера обмена почтой на Mail.ru.

код PHP

Код:
<?php
$host="mxs.mail.ru";
$port="25";
$from="errou@mail.ru";
$to="errou@mail.ru";
$text="test";

$f=fsockopen($host,$port);
  fputs($f, "HELO {$_SERVER['SERVER_NAME']}\r\n"); 
  fputs($f,"MAIL FROM: <$from>");
print(fgets($f));
print(fgets($f));
  fputs($f,"RCPT TO: <$to>");
  fputs($f,"DATA");
  fputs($f,"$text");
  fputs($f,"RSET");
  fputs($f,"QUIT");
?>
Коннектится нормально, при трассировке выдает, что все пучком:
220 Mail.Ru ESMTP
250 mx20.mail.ru ready to serve

Но мыло не приходит.
 
Ответить с цитированием

  #2  
Старый 28.01.2006, 22:56
D1mOn
Постоянный
Регистрация: 02.10.2005
Сообщений: 490
С нами: 10845026

Репутация: 212
По умолчанию

Код:
$host="mxs.mail.ru";
Попробуй заменить на
Код:
$host="smtp.mail.ru";
 
Ответить с цитированием

  #3  
Старый 29.01.2006, 00:12
errou
Новичок
Регистрация: 27.01.2006
Сообщений: 8
С нами: 10675887

Репутация: 0
По умолчанию

Цитата:
Сообщение от D1mOn  
Код:
$host="mxs.mail.ru";
Попробуй заменить на
Код:
$host="smtp.mail.ru";
Я попробовал - то же самое. То есть он нормально коннектится к почтовому серваку, а дальше - ни ответа, ни привета.
И еще с этим скриптом неясно - при попытке прочтения из сокета более двух строк - скрипт не завершает работу.
То есть, если читать а-ля
while(!feof($f))
{
print(fgets($f));
} - подвисает, и все.
 
Ответить с цитированием

  #4  
Старый 29.01.2006, 00:21
madnet
Умиротворенн
Регистрация: 09.12.2004
Сообщений: 996
С нами: 11272646

Репутация: 1384


По умолчанию

function mail($login, $passwd, $to, $subj, $text){
$fp=fsockopen("smtp.mail.ru", 25);
if($fp){
$post[]="HELO mail.ru\r\n";
$post[]="AUTH LOGIN ".base64_encode($login)."\r\n";
$post[]=base64_encode($passwd)."\r\n";
$post[]="MAIL FROM: ".$login."@mail.ru\r\n";
$post[]="RCPT TO: ".$to."\r\n";
$post[]="DATA\r\n";
$post[]="From: ".$login."@mail.ru\r\n";
$post[]="Date: ".date('r')."\r\n";
$post[]="To: ".$to."\r\n";
$post[]="Subject: ".$subj."\r\n";
$post[]="MIME-Version: 1.1\r\n";
$post[]="Content-type: text; charset=windows-1251\r\n";
$post[]="Content-Transfer-Encoding: 8bit\r\n";
$post[]="\r\n";
$post[]=$text."\r\n.\r\n";
$post[]="QUIT\r\n";
foreach($post AS $k=>$v)
{
fwrite($fp, $v);
if($k<7 || $k>14){$answ = fgets($fp, 128);}
}
fclose($fp);
}
}
__________________

http://madnet.name - madnet - blog | homepage (Мысли, релизы, скрипты, софт)

http://antichat.ru - Лучший сайт по безопасности
irc.antichat.ru:7771 #antichat - общение online
ГАРАНТ ФОРУМА
 
Ответить с цитированием

  #5  
Старый 29.01.2006, 01:34
errou
Новичок
Регистрация: 27.01.2006
Сообщений: 8
С нами: 10675887

Репутация: 0
По умолчанию

Спасибо огромное!
 
Ответить с цитированием

  #6  
Старый 01.02.2006, 10:18
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
С нами: 11291306

Репутация: 569


По умолчанию

2 madnet
Где-то я уже эту функцию видел %)))
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP 186 21.02.2010 02:41
php через MySQL Grema PHP 5 19.01.2006 17:23



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.