Доступ к внешнему smtp серверу из php4

dio4

Guest
Доступ к внешнему smtp серверу из php4

Подскажите пожалуйста новичку, как реализовать посредством php4 доступ к smpt службе физически другого сервера(там работает sendmail) для осуществления через него рассылок? Имеется законный доступ ко всем серверам. Спасибо заранее.
 

dio4

Guest
Буду благодарен за ссылку на руководство(книгу) или что угодно...так мне не осилить пока это....
 

dio4

Guest
Спасибо большое...вот только как все же организовать всю эту кухню на php используя сокеты?(или что-то другое) :) Хоть пару строк кода в качестве примера примера....
 

dio4

Guest
Спасибо большое....буду изучать :)

-~{}~ 22.11.05 10:03:

Помогите пожалуйста новичку.
Задача: под учеткой [email protected] с сервера myserver1.ru с помощью php4 посылать почту на учетку [email protected] сервера myserver2.ru На обоих серверах подняты почтовые сервера. Диалог посредством telnet myserver2.ru 25 проходит полностью и почта уходит с 1 сервера на второй. На 1 сервере подняты apache+php4+postfix, на сервере 2 - sendmail. Привиденный ниже скрипт, запускаемый на 1 сервере, не работает - почта не уходит. Помогите пожалуйста разобраться.

<?php
$server='1.1.0.1';
$to='[email protected]';
$from='[email protected]';
$subject='proba';
$message='proba mail_php';
function socketmail($server, $to, $from, $subject, $message) {
$connect = fsockopen ($server, 25, $errno, $errstr, 30);
fputs($connect, "HELO localhost\r\n");
fputs($connect, "MAIL FROM: $from\n");
fputs($connect, "RCPT TO: $to\n");
fputs($connect, "DATA\r\n");
fputs($connect, "Content-Type: text/plain; charset=iso-8859-1\n");
fputs($connect, "To: $to\n");
fputs($connect, "Subject: $subject\n");
fputs($connect, "\n\n");
fputs($connect, stripslashes($message)." \r\n");
fputs($connect, ".\r\n");
fputs($connect, "RSET\r\n");
}
?>
Спасибо заранее.
 

fizot

Новичок
возможно сервер требует аутентификации,как маил.ру например
 

dio4

Guest
я и указываю ему $from='[email protected]';
и пишу же, что диалог по telnet myserver2.ru 25 проходит полностью и почта уходит с 1 сервера на второй.

-~{}~ 22.11.05 10:38:

ну вот...вчера столько людей было...и whirlwind и Astral Man отослали меня именно к этим примерам....а сегодня уже и подсказать по своим же ссылкам не получается? :-(
А мне казалось, что серьезные спецы если "отсылают" на ссылку или пример, то он 100% должен быть отработам тем, кто туда "посылает"...или я просто горячусь? Срочная работа, извините...требуют результат.
 

whirlwind

TDD infected, paranoid
Протокол - это диалог. У тебя в коде нет диалога. После отправки каждой команды, по идее надо выполнять анализ ответа. Каков формат ответа - смотри в RFC (ссылки я дал выше). Минимум что тебе нужно сделать для выяснения причины - направить все ответы в поток вывода (print, echo), что бы ты мог их просмотреть и проанализировать.
 

dio4

Guest
Автор оригинала: Tor
dio4

тебе было достаточной почитать мануал по функции
http://www.php.net/mail
Я со всем уважением к вам, но функция mail, насколько я понял, работает только с локальным smtp сервером. Меня же интересует физически удаленный сервак.

-~{}~ 22.11.05 11:00:

Автор оригинала: whirlwind
Протокол - это диалог. У тебя в коде нет диалога. После отправки каждой команды, по идее надо выполнять анализ ответа. Каков формат ответа - смотри в RFC (ссылки я дал выше). Минимум что тебе нужно сделать для выяснения причины - направить все ответы в поток вывода (print, echo), что бы ты мог их просмотреть и проанализировать.
Спасибо, пробую, потом отвечу. Извините, если что не так сказал...
 

dio4

Guest
Те, если ТОЛЬКО под windows в поле SMTP string указать ip или DNS имя сервера smtp , то PHP будет его использовать для посылки почты с функцией mail()? Я правильно перевел и понял вас?
И оба сервера под Linux у меня... :-(
-~{}~ 22.11.05 11:14:

я пробовал в php.ini менять эти параметры....не идет почта. Если опять же я правильно вас понял....

-~{}~ 22.11.05 11:25:

Автор оригинала: Tor
Вы неправильно поняли

тыкаю носом:

SMTP string

Used under Windows only: DNS name or IP address of the SMTP server PHP should use for mail sent with the mail() function.
Так я правильно вас понял или нет? Ответьте пожалуйста.
 

Tor

Новичок
Так я правильно вас понял или нет? Ответьте пожалуйста.
я что, аппеляционный суд?
не понимаешь что написано - пользуйся переводчиком

сервер не под виндой?
пользуйся сокетами

за время сидения в форуме проблему можно было решить десять раз уже
 

dio4

Guest
вот и я о том же...вы сами недочитали (я и делаю под сокеты), а тычите меня носом. У вас есть что-то по существу написанного кода под сокеты? Извините.
 

dio4

Guest
а вот...(флуд какой то...)


dio4
Новичок

На форуме с: Nov 2005
Cообщений: 8
Город: Краснодар
Спасибо большое...вот только как все же организовать всю эту кухню на php используя сокеты?(или что-то другое) :) Хоть пару строк кода в качестве примера примера....


21.11.05 15:27 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ


whirlwind
Продвинутый новичок

На форуме с: Jan 2004
Cообщений: 133
Город: Spb
более чем пара

http://phpclub.ru/detail/article/mail


21.11.05 15:30 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ


dio4
Новичок

На форуме с: Nov 2005
Cообщений: 8
Город: Краснодар
Спасибо большое....буду изучать :)

-~{}~ 22.11.05 10:03:

Помогите пожалуйста новичку.
Задача: под учеткой [email protected] с сервера myserver1.ru с помощью php4 посылать почту на учетку [email protected] сервера myserver2.ru На обоих серверах подняты почтовые сервера. Диалог посредством telnet myserver2.ru 25 проходит полностью и почта уходит с 1 сервера на второй. На 1 сервере подняты apache+php4+postfix, на сервере 2 - sendmail. Привиденный ниже скрипт, запускаемый на 1 сервере, не работает - почта не уходит. Помогите пожалуйста разобраться.

<?php
$server='1.1.0.1';
$to='[email protected]';
$from='[email protected]';
$subject='proba';
$message='proba mail_php';
function socketmail($server, $to, $from, $subject, $message) {
$connect = fsockopen ($server, 25, $errno, $errstr, 30);
fputs($connect, "HELO localhost\r\n");
fputs($connect, "MAIL FROM: $from\n");
fputs($connect, "RCPT TO: $to\n");
fputs($connect, "DATA\r\n");
fputs($connect, "Content-Type: text/plain; charset=iso-8859-1\n");
fputs($connect, "To: $to\n");
fputs($connect, "Subject: $subject\n");
fputs($connect, "\n\n");
fputs($connect, stripslashes($message)." \r\n");
fputs($connect, ".\r\n");
fputs($connect, "RSET\r\n");
}
?>
Спасибо заранее.

-~{}~ 22.11.05 11:34:

и в коде же видно...
function socketmail($server, $to, $from, $subject, $message) {
$connect = fsockopen ($server, 25, $errno, $errstr, 30);

-~{}~ 23.11.05 16:46:

не получается...может кто еще подскажет где у меня не правильно?
 

whirlwind

TDD infected, paranoid
Что конкретно не получается? Скинь полный диалог между сервером и клиентом.

-~{}~ 23.11.05 16:50:

В догонку... Во всех командах проставь \r\n, вместо \n
И что за RSET ?
 
Сверху