Страница 1 из 1

Взаимодействие системного фильтра с внешними программами

Добавлено: 2010-03-03 21:24:56
govor
Здравствуйте. Нашел следующую переписку, на данный момент для меня этот вопрос актуален.
Мои вопросы последуют ниже...
Marquez » 2007-06-19 7:57:22
А по русски?

Куда уж более. При отправке почты на определенный список адресов, письма не уходят пока ответсвенное лицо (руководство, безопасность - не важно) не ознакомились с ними и не дали виртуальное добро в виде каких-либо действий с почтой (фантазия - отсылка "1" для разрешения на определенный адрес). В любом случая, я сомневаюсь, что exim это сможет реализовать.
Marquez
рядовой

Сообщения: 20
Зарегистрирован: 2007-06-16 0:03:29
Вернуться к началу

lissyara » 2007-06-19 12:47:42
тока внешним скриптом, которой на рас крутится к экзиму.
пишется такой скрипт тоже с полпинка.
========
тока ты не напишешь, т.к. документацию не читаешь, а выдвигаешь предположения
Мои вопросы:
Фильтр для exim'а не доставляется почта после проверки.
Есть необходимость разрешения\запрета исходящих писем.
message_id хранятся в базе mysql.
1.есть программа на С которая возвращает
T=system_filter_pipe defer (0): Child process of system_filter_pipe transport returned 75 (could mean temporary error) from command: /bin/sh
если письмо неразрешено
и 0 если письмо разрешено
2. system_filter
Попробовал сделать таким образом:

Код: Выделить всё

#Exim filter
if error_message then finish endif
pipe "/etc/exim/filter/filter \"$message_id\""
if delivered then
     pipe "/etc/exim/exim -M \"$message_id\""
endif
на 1-ой доставке pipe "/etc/exim/filter/filter \"$message_id\"" идетдобавление записи в таблицу.
проходит несколько итераций, письмо разрешено оператором.
возвращается 0
письмо уходит но:
  • 2010-03-03 21:07:41 Start queue run: pid=21175
    2010-03-03 21:07:41 1NmpxW-0005Bo-E1 original recipients ignored (system filter)
    2010-03-03 21:07:41 1NmpxW-0005Bo-E1 => |/etc/exim/filter/filter "$message_id" <system-filter> T=system_filter_pipe
    2010-03-03 21:07:41 1NmpxW-0005Bo-E1 Completed
    2010-03-03 21:07:41 1NmqtU-0005R1-SG original recipients ignored (system filter)
    2010-03-03 21:07:41 1NmqtU-0005R1-SG => |/etc/exim/filter/filter "$message_id" <system-filter> T=system_filter_pipe
    2010-03-03 21:07:41 1NmqtU-0005R1-SG Completed
    2010-03-03 21:07:41 End queue run: pid=21175
соответственно оригинальные получатели проигнорированы...
пробовал вместо pipe "/etc/exim/exim -M \"$message_id\"" поставить: deliver $recipients работает когда получатель 1, если больше то ошибка(deliver работает только с 1 адресом).
читал доку по exim, но наверное плохо читал:(
может быть есть способ отправить письмо минуя системный фильтр?

Re: Взаимодействие системного фильтра с внешними программами

Добавлено: 2010-03-04 9:37:44
Alex Keda
копируйте оригинальных получателей в заголовок типа

Код: Выделить всё

X-Old-Recipients: 
на более ранних стадиях, и при разрешении прохождения письма вертайте на место...
например.
========
а вообще у вас всё очень мутно описано... я больше 5 минут вкуривал что вы сделали, и как оно работает - редкий случай =))

Re: Взаимодействие системного фильтра с внешними программами

Добавлено: 2010-03-10 8:57:20
govor
поразбирался со всем этим делом, то что я вам написал оно в принципе не работает, ибо возвращаемые коды временных ошибок это уже статус delivered.
Интересует ваше мнение, каким образом вы бы подключили стороннюю проверку писем на разрешение\запрет их дальнейшей пересылки?

Re: Взаимодействие системного фильтра с внешними программами

Добавлено: 2010-03-10 10:54:35
Alex Keda
смотря какой интерфейс для разрешения прохождения будет выбран.
из того что в голову приходит слёту - складывать в директорию, до кучи в базу класть id письма.
дальше как-то решают пропускаем или нет, если да - достаём из директории и кладём в очередь на доставку.
вопрос как решать можно или нет.
проще всего - копия письма с изменённой темой и обратным адресом на какой-тоадрес, там решают, и либо отвечают на него либо нет.
в теме идентификатор - по нему опредляем письмо которое размораживать

Re: Взаимодействие системного фильтра с внешними программами

Добавлено: 2010-03-10 14:29:02
govor
Спасибо, структура базы уже готова, программка написана, а так веб-интерфейс будет для оператора. Я думал над этим, значит плохо думал...