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

  • Автор темы Автор темы Dmitry
  • Дата начала Дата начала

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);
 
Dmitry

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

-~{}~ 14.06.05 13:35:

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

зы
И не мешало бы посылать
"QUIT\n" до ф-ии fclose()
 
а все понял... да есть в конце такая вещь
PHP:
fputs($fp,"\n.\nQUIT\n");
fputs($fp,"\n.\n");

-~{}~ 14.06.05 13:46:

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

-~{}~ 14.06.05 13:46:

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

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

подскажите в каком направлении копать?
 
> время ф-ия fsockopen возвращает false
> пробовал открыть соединение телнетом
Скрипт поди запускал на сервере в инете, а соединение открывал - дома? Нет здесь телепатов. Писать надо так, как есть на самом деле, чтобы никому не пришлось гадать на кофейной гуще.
 
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 очень старый так-что ногами не пинать
 
Dmitry
Расскажи пожалуйста, почему тебе понадобилось почту отправлять через fsockopen, вместого того, чтобы пользоваться функцией mail.
 
Vladson
Это одно из предположений. Но ты если ты не Dmitry, то вряд ли ты можешь дать мне достоверную информацию, не так ли? :-)
Этот вопрос не требует ответа - не будем засорять топик.
 
Здравствуйте все, я уже и забыл давно про этот вопрос.... :) Сокет мне понадобился для того , что на сервере где выкладывался магазин не было доступа к конфигу апача, а функция майл черпает от туда некоторые конфигурационные данные, поэтому решил воспользоваться сокетом.... :) Но это было 2 мес назад :) Я уже и забыл про этот магазин....
 
Сверху