shark_255
Новичок
postfix and php sockets
Вопрос переплетен с почтовым сервером postfix и php
Задача состоит в следующем - когда приходит почта - ее обрабатывает postfix,
в это время предполагается обработать php фильтром (подобно фильтрам на вирусы
и спам) таким образом, чтобы читать входящее сообщение, сохранять его в отдельную
папочку.
Фильтр, насколько я понимаю - это сервер-слушатель - он реализован у меня на php через сокеты.
Проблема вот в чем - я получаю не тело сообщения, а только выход, то есть строчку "QUIT".
(тут вроде бы ясно, значит postfix не то передает - но я прописываю фильтр по аналогии
с другими)
Кто, что может подсказать по этому поводу - буду заранее благодарен
(понимаю что тема оффтопична, но может кто сталкивался)
код чтения прилагается:
Вопрос переплетен с почтовым сервером postfix и php
Задача состоит в следующем - когда приходит почта - ее обрабатывает postfix,
в это время предполагается обработать php фильтром (подобно фильтрам на вирусы
и спам) таким образом, чтобы читать входящее сообщение, сохранять его в отдельную
папочку.
Фильтр, насколько я понимаю - это сервер-слушатель - он реализован у меня на php через сокеты.
Проблема вот в чем - я получаю не тело сообщения, а только выход, то есть строчку "QUIT".
(тут вроде бы ясно, значит postfix не то передает - но я прописываю фильтр по аналогии
с другими)
Кто, что может подсказать по этому поводу - буду заранее благодарен
(понимаю что тема оффтопична, но может кто сталкивался)
код чтения прилагается:
PHP:
while (1)
{
set_time_limit(0);
$address = "127.0.0.1";
$port = 10029;
$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
socket_bind($socket, $address, $port);
socket_listen($socket);
//$connection = socket_accept($socket);
//$result = trim(socket_read($connection, 100000));
if (($connection = socket_accept($socket)) === false) {
$err_string = "socket_accept() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
echo $err_string;
file_put_contents("error.log", $err_string);
}
if (false === ($result = socket_read($connection, 100000))) {
$err_string = "socket_read() failed: reason: " . socket_strerror(socket_last_error($connection)) . "\n";
echo $err_string;
file_put_contents("error.log", $err_string);
}
socket_close($socket);
socket_shutdown($socket);
file_put_contents(time().".txt",$result);
$port_response = 10025;
$socket_response = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
socket_bind($socket_response, $address, $port);
socket_write($socket_response, $result);
socket_close($socket_response);
socket_shutdown($socket_response);
}