В сообщении от Понедельник 11 апреля 2011 14:39:19 автор Sergej Kandyla 
написал:
> Богун Дмитрий 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 !eq{local}{$received_protocol} {yes}{no}} 
                # просто на всякий случай, а то в скрипте всякое можно написать 
^_^
>             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
> 
> скрипт уже сам дальше обрабатывает месседж.
_______________________________________________
Exim-users mailing list
[email protected]
http://mailground.net/mailman/listinfo/exim-users

Ответить