Павел Завада wrote: > Вариант с базой очень нравится. Более того, exim уже настроен в связке с > mysql базой. > Ссылка на структуру БД, которая используется - > http://piccy.info/view3/6577415/00cb0bd269e9c4159e5ab3753a65b56b/ > > Исходя из ранее указанного метода (решить задачу через БД и фильтр с > выборкой из неё), я бы добавил в эту структуру поле *hold* со > значениями 0 и 1, как в поле *status* (активен ли ящик в принципе)
можно вообще абстрагироваться от существующих таблиц. разве что использовать список учетных записей, чтобы при блокировке не вручную указывать адрес блокируемого отправителя. я бы создал отдельную таблицу, в которой бы указывал адрес отправителя (или ссылку на учетную запись в уже существующей таблице учетных записей), дату блокировки, можно указать того, кто заблокировал (если блокировать могут несколько человек через какой-нибудь веб интерфейс), можно указать величину задержки или граничное время разморозки (по желанию), дату и время блокировки письма, дату и время расчетной разморозки письма (если ранее была указана величина задержки и не хочется в запросе копаться с вычислениями этого момента времени, па в результатах запроса к табличке хочется видеть визуально все в виде datetime), дату и время реальной разморозки письма. а можно (если вообще не нужно знать, что и как происходило), действительно просто добавить одно поле в таблицу учетных записей. и сбрасывать его значение при заморозке письма. все зависит "от полного налитого стакана". >>> Далее, если нижеприведённый фильтр подходит нам >>> >>>> 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 > -- Best wishes Victor Ustugov mailto:vic...@corvax.kiev.ua public GnuPG/PGP key: http://victor.corvax.kiev.ua/corvax.asc ICQ UIN: 371808614 JID: corvax_at...@jabber.corvax.kiev.ua nic-handle: CRV-UANIC _______________________________________________ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users