Работа с почтой fsockopen

Dmitry

Guest
Работа с почтой fsockopen

Пытаюсь отправить сообщение на майл через fsockopen,
ничего не выходит, коннект как бы проходит а сообщение не отправляется

PHP:
 $from='[email protected]';	
	$to = '[email protected]';
	$server='smtp.mail.ru';
	$headers="asdfasdfasdfasdf";
    $fp = fsockopen($server, 25, &$errno, &$errstr, 30);

    if (!$fp)
	die("Server $server. Connection failed: $errno, $errstr");	
	
    fputs($fp,"HELO $server\n");	
    fputs($fp,"MAIL FROM: $from\n");
    fputs($fp,"RCPT TO: $to\n");
    fputs($fp,"DATA\n");    
	fputs($fp,$headers);   
    fputs($fp,"$headers\n");
		
    while(!feof($fp))
      $resp.=fgets($fp,1024);
    fclose($fp);
 

AHTIXPICT

Новичок
Dmitry

Вообще если на вскидку,
то протокол SMTP требует точку в конце сообщения на отдельной строке - "\n.\n".
Поэтому нужно сначала изучить SMTP
 

Dmitry

Guest
оригинальный ответ

-~{}~ 14.06.05 13:35:

в этом листинге я вообще не посылаю никакого сообщения... просто пустое письмо
 

AHTIXPICT

Новичок
Dmitry
Еще раз.
Сервер принисмает сообщение на обработку, только когда ты поставишь завершающую точку на новой строке

зы
И не мешало бы посылать
"QUIT\n" до ф-ии fclose()
 

Dmitry

Guest
а все понял... да есть в конце такая вещь
PHP:
fputs($fp,"\n.\nQUIT\n");
fputs($fp,"\n.\n");
-~{}~ 14.06.05 13:46:

я же говорю проходит все нормально.... только ничего не приходит на мыло

-~{}~ 14.06.05 13:46:

может в синхронизации проблемма?
 

AHTIXPICT

Новичок
а ты зайди
telnet smtp.mail.ru 25
и попробуй ручками сначала.
Я думаю ты увидишь много интересного в ответ на команды
MAIL From:
RCPT To:
etc.

Я думаю этот сервер не даст кому попало релеить почту
 

Moby

Guest
отцы, помогите, использую этот же код. результат - не открывает соединение. возвращает пустые errno и errstr, но в тоже время ф-ия fsockopen возвращает false. почитал описание fsockopen, там пишется, что ошибка возникает до команды connect.
пробовал открыть соединение телнетом - всё пучком, открывает.

подскажите в каком направлении копать?
 

SiMM

Новичок
> время ф-ия fsockopen возвращает false
> пробовал открыть соединение телнетом
Скрипт поди запускал на сервере в инете, а соединение открывал - дома? Нет здесь телепатов. Писать надо так, как есть на самом деле, чтобы никому не пришлось гадать на кофейной гуще.
 

Vladson

Сильнобухер
Dmitry
1 - не HELO а EHLO (RFC821->RFC2821)
2 - требуется чаще всего ещё и авторизация (AUTH LOGIN)
3 - вроде бы не "\n" a "\r\n" (точно не помню)

-~{}~ 04.08.05 21:11:

Тем более ещё и mail.ru
там нет pipeline, есть рабочий пример скрипта http://phpbbguru.net/community/viewtopic.php?p=8885#8885 очень старый так-что ногами не пинать
 

ForJest

- свежая кровь
Dmitry
Расскажи пожалуйста, почему тебе понадобилось почту отправлять через fsockopen, вместого того, чтобы пользоваться функцией mail.
 

ForJest

- свежая кровь
Vladson
Это одно из предположений. Но ты если ты не Dmitry, то вряд ли ты можешь дать мне достоверную информацию, не так ли? :)
Этот вопрос не требует ответа - не будем засорять топик.
 

Dmitry

Guest
Здравствуйте все, я уже и забыл давно про этот вопрос.... :) Сокет мне понадобился для того , что на сервере где выкладывался магазин не было доступа к конфигу апача, а функция майл черпает от туда некоторые конфигурационные данные, поэтому решил воспользоваться сокетом.... :) Но это было 2 мес назад :) Я уже и забыл про этот магазин....
 
Сверху