Богун Дмитрий wrote:
В сообщении от Суббота 26 марта 2011 19:25:59 автор Sergej Kandyla написал:
Богун Дмитрий wrote:
1) письмо все равно доставить, но вырезав аттач;
2) сгенерировать отправителю отчет (с русским языком), что его
письмо(аттач) недоставлено;
3) сгенерировать админу репорт, что из такого-то письма был удален
аттач.
Может быть стоит поступить проще - по совпадению условий перенаправить
письмо в скрипт. написанный на вашем любимом языке, а там уже можно
сделать все необходимые вещи и вырезать лишний аттач и разослать
необходимые уведомления в нужных кодировках и языках.
Это в духе

continue = ${run{.../python -s $sender_address -r $recipients}}
?
Нет, про класическое перенаправление в трубу.

Как-нибудь так.
begin acl
... rcpt:
  ...
    warn    domains     = +local_domains
            local_parts = test
            set acl_m_attach_cut = ${if BAD_MESSAGE_REQUIRED_PROCESSING {yes}
{no}}
  ...
begin routers
  ...
  attach_cut:
    driver = redirect
    condition = $acl_m_attach_cut
    data = |/path/to/our/processing/script
    pipe_transport = address_pipe

Скорее всего acl'ка тут лишняя, все можно проверить на уровне роутера.

Спасибо большое!
Именно так и реализовал.


acl_check_rcpt:
       warn    domains     = +local_domains
           recipients      = lsearch;/etc/exim/strict_recipients
           set acl_m0 =  catched


acl_check_data:
       warn  condition = ${if def:acl_m0}
           condition = ${if >{$message_size}{2M} {yes}{no}}
           set acl_m1 =  catched


begin routers
 acl_m1_router:
   driver = redirect
   condition = $acl_m1
   data = |/etc/exim/custom/mail.py
   pipe_transport = address_pipe



скрипт уже сам дальше обрабатывает месседж.


Еще можно посмотреть на system_filter скорее всего там будет проще проверить необходимые условия, и вся логика будет собрана кучнее. ^_^

Ну а сам скрипт уже делает повторную доставку результатов своих манипуляций над сообщением и уведомлений.

Есть и еще один путь - посмотрите на опцию transport_filter.

идея интересная, и вроде бы как более прозрачная.

ЗЫ А в чем смысл удаления уже принятого сообщения по критерию его
размера? Не решаются ли эта задача через установку необходимых квот на
почтовые ящики?
Речь не про удаление полностью сообщения, а только удаления аттача из
сообщения, с последующей нормальной достовкой.
Специфика приложения.
Хм... раз так надо...


_______________________________________________
Exim-users mailing list
[email protected]
http://mailground.net/mailman/listinfo/exim-users

Ответить