Колеги помогите!
С postfix дружу сравнительно недавноЗадача
Необходимо перехватить скриптом письмо (или копию) перед тем как оно упадёт в папку юзера
или
запускать скрипт по приходу письма.
Как это можно сделать?
Связка postfix + amavisd + clamav + spamassassin + courier
Пытался скриптом на php, всунув его между amavisd и posfix
amavisd отдаёт в скрипт на 10029 и дальше скрипт в postfix на 10025
<?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);
}
?>
в результате скрипт получает только слово QUIT
Пытался через master.cf, но php-скрипт запустить никак не удалось
Может кто сможет показать пример скрипта на bash или на perl к примеру, для данной задачи (сам не шарю пока в этом) ?