Вариант с базой очень нравится. Более того, exim уже настроен в связке с mysql базой. Ссылка на структуру БД, которая используется - http://piccy.info/view3/6577415/00cb0bd269e9c4159e5ab3753a65b56b/

Исходя из ранее указанного метода (решить задачу через БД и фильтр с выборкой из неё), я бы добавил в эту структуру поле *hold* со значениями 0 и 1, как в поле *status* (активен ли ящик в принципе)

Далее, если нижеприведённый фильтр подходит нам

if first_delivery and $sender_address is"usern...@example.com"  then
      freeze
endif
то как тогда разрешить отправку письма?
протолкнуть замороженное письмо можно с помощью exim -M
я уже упоминал exiqgrep, xargs и exim -M

Если ничего не предпринимать, то письмо будет отправлено автоматом при следующей попытке? Здесь вступает в силу queue_runner? Хотелось бы разрешить отправку письма явно, то есть, после каких-то ручных действий. Идеально будет, если так же, через БД... Изменить поле *hold* с 1 на 0 у юзера.
Но тогда фильтр должен быть универсальным, а не только на*first_delivery*.

Итого, осталось только написать правильный запрос, который будет использован в фильтре.
Просьба помочь с этим. Заранее благодарю :)

20.06.2014 13:47, Victor Ustugov пишет:
Igor Karpov wrote:
On Jun 20, 2014, at 1:35 PM, Victor Ustugov <vic...@corvax.kiev.ua>
wrote:
тогда делаем крошечную базку SQLite. при необходимости
вышеописанной операции в табличку любым способом (хоть через веб
интерфейс) добавляется запись с адресом отправителя.

в системном фильтре в условие заморозки добавляется лукап в эту
табличку. и если адрес отправителя в ней есть, письмо
замораживается, а запись из таблицы либо удаляется, либо
апдейтится поле срабатывания данного события (в зависимости от
того, нужны ли будут потом отчеты о срабатываниях).
Другая возможность - не замораживать, а выпихивать на более другой
smarthost, который вообще по собственной инициативе ничего не
доставляет - или доставляет с (получасовой?) задержкой. Хотя для
единственного отправителя, пожалуй, много чести...
тогда в Received будет видно, что с письмом проводились манипуляции

в случае заморозки будет видно только, что между доставкой письма
непосредственно от отправителя данному exim'у и доставкой от данного
exim'а дальше по маршруту или по MX была задержка по времени. и всё.

по условиям задачи неясно, на сколько "чисто" нужно провести данную
операцию.


_______________________________________________
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users

Ответить