Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как правильно отправить почту с помощью сокетов?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: в локальной сети работает из внешней сетки - нет
GERA
Отправлено: 03 Августа, 2007 - 05:21:38
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Авг. 2007  
Откуда: Бердск


Помог: 0 раз(а)




Доброго времени суток! Возможно кто-то знает как решить мою проблему...
Есть прокси-сервер на котором установлен IIS + PHP. На PHP написана форма с которой данные методом POST передаются на другую страницу с которой отправляется почта. При этом, если сообщение отправляется с локальной сети, то все работает, как часы. Если отправлять из вне (НЕ из локалки), то соощения не доходят до получателя. Даже в логах Керио-Маил-Сервера - все пусто, как-будто никто и ничего не отправлял.

Вот код, который использую для отправки сообщения:

Цитата:

$server = "Proxy";
$to = "to@site.ru";
$toname = "to";
$from = "clients@site.ru";
$subject = "Сообщение";
$err = '';

//здесь проверка инфы введенной с формы

if ($err == '')
{
$message = "ФИО: ".$_POST['FIO']."nКонтактный телефон: ".$_POST['PHONE'].
"nГород: ".$_POST['CITY']."nУлица: ".$_POST['STREET'].
"nДом: ".$_POST['HOME']."nКвартира: ".$_POST['KV'].
"nНаименование изделия: ".$_POST['NAME']."nТорговая марка:
".$_POST['MARK'].
"nМодель: ".$_POST['MODEL']."nДефект: ".$_POST['DEFECT']."nВид ремонта:
".$TYPE;

$connect = fsockopen ($server, 25, &$errno, &$errstr, 100);


if(!$connect)
{
echo "$errstr ($errno)<br>n";
}
else
{
fputs($connect, "HELO\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=Windows-1251\n");
fputs($connect, "To: $tonamen");
fputs($connect, "From: "".$_POST['FIO'].""\n");
fputs($connect, "Subject: $subjectn");
fputs($connect, "\n\n");
fputs($connect, stripslashes($message)."\ r\n");
fputs($connect, ".\r\n");
fputs($connect, "RSETrn");
fgets($connect, 128);

fclose($connect);
echo "Заявка отправлена";

//Здесь пытался записать эту же информацию в файл - ВСЕ записывается
//из внешней сети
}

}
else
{
echo "<b>ОШИБКА!</b><br>";
}



Возможно ли такое, что из-за плохого соединения fclose($connect) - выполняется сильно рано и сервер просто не успевает обработать сообщение?

 
 Top
valenok Модератор
Отправлено: 06 Августа, 2007 - 11:58:08
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




А вы проверяли что у вас не всё отсылается нормально?

...

// while (!feof($connect))
$response = fgets($connect, 128);
echo $response;

...


-----
Truly yours, Sasha.
 
My status
 Top
GERA
Отправлено: 06 Августа, 2007 - 12:10:00
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Авг. 2007  
Откуда: Бердск


Помог: 0 раз(а)




нет не проверял....

Проверю и сообщу результат

 
 Top
GERA
Отправлено: 07 Августа, 2007 - 04:45:37
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Авг. 2007  
Откуда: Бердск


Помог: 0 раз(а)




и в локалке и из внешней сети

Цитата:
response = 220 server ESMTP ready


PS: заметил удивительную вещь, если код продублировать, т.е.

Цитата:
$connect = fsockopen ($server, 25, &$errno, &$errstr, 100);
//делаем что-то
fclose($connect);
//снова делаем что-то
$connect = fsockopen ($server, 25, &$errno, &$errstr, 100);
//делаем что-то
fclose($connect);


то если долго не отправлять сообщение придет только одно письмо.
Если скрипт запустить еще раз (ч/з 1-2 минуты), то придёт два письма.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB