l...@lena.kiev.ua wrote:
  # acl_check_rcpt:
      warn    recipients  = lsearch;/etc/exim/strict_recipients
          set acl_m0  = catched
  # acl_check_data:
      deny  message   = "Denided by message size = $message_size"
          condition = ${if eq {$acl_m0}{catched} {yes}{no}}
          condition = ${if >{$message_size}{100k} {yes}{no}}
          logwrite  = "$recipients Denided by message size"

Можно письмо совсем не доставить (как сейчас), но в дополнение к
нормальному баунсу можно прямо из ACL отправить письмо отправителю,
получателю и админу с сообщением по-русски, что письмо от
такого-то отправителя такому-то получателю такого-то размера
не доставлено из-за превышения лимита размера письма.
Устраивает такое решение?
Да, более чем!
Правда, совершенно неясно как прямо из ACL это осуществить...

В начале конфига:

untrusted_set_sender = *
local_from_check = false

В acl_check_data вместо вышеприведенного
после всех проверок на спам:

  deny message = "Denied by message size = $message_size"
       condition = ${if def:acl_m0}
       condition = ${if >{$message_size}{100k}}
       logwrite = "$recipients Denied by message size"
       continue = ${run{/bin/sh -c "\N{\N echo Subject: \
         '=?koi8-r?B?8MnT2M3PIM7FIMTP09TB18zFzs8=?=';\
         # Письмо не доставлено
         echo 'Content-Type: text/plain; charset=koi8-r';\
         echo Content-Transfer-Encoding: 8bit;\
         echo; echo '${sg{Письмо от $sender_address для $recipients\n\
         с темой $h_subject\nразмером ${eval:$message_size/1024} килобайтов \
         не доставлено из-за превышения\n\
         лимита размера письма (100 килобайтов).}{'}{}}'; \
         \N}\N | /usr/local/sbin/exim -f root ad...@example.com \
         ${sg{${filter{<, $sender_address,$recipients}\
         {!match{$item}{\N(^-|[^\w.=+%!@-])\N}}}}{,}{ }}}}

Тут я подразумеваю, что у Exim файл конфига в кодировке koi8-r.
Если он в кодировке utf-8, то поправьте Content-Type и Subject.
Также подразумеваю, что в домене $primary_hostname существует адрес root@.
Замените ad...@example.com на адрес админа и проверьте пути
(/bin/sh и /usr/local/sbin/exim - для FreeBSD).
Проверьте, расскажите нам работает ли.


Спасибо за решение!
Я и не думал, что сюда можно столько наворотить ;)

Но судя по всему,  мой  exim-4.63 (CentOS), не понимает что такое  continue


Starting exim: 2011-03-26 17:50:30 Exim configuration error in line 99 of /etc/exim/acl_check_data.conf: error in ACL: unknown ACL condition/modifier in "continue = ${run{/bin/sh -c "\N{\N echo Subject: '=?utf-8?Письмо не доставлено';echo 'Content-Type: text/plain; charset=utf-8';echo Content-Transfer-Encoding: 8bit;echo; echo '${sg{Письмо от $sender_address для $recipients\nс темой $h_subject\nразмером ${eval:$message_size/1024} килобайтов не доставлено из-за превышения\nлимита размера письма (100 килобайтов).}{'}{}}'; \N}\N | /usr/sbin/exim -f root ad...@mydomain.com ${sg{${filter{<, $sender_address,$recipients}{!match{$item}{\N(^-|[^\w.=+%!@-])\N}}}}{,}{ }}"}}"
                                                          [FAILED]


С упрощенным вариантом:
      continue = ${run{/bin/sh -c "\N{\N echo Subject: }}}

Starting exim: 2011-03-26 17:52:34 Exim configuration error in line 88 of /etc/exim/acl_check_data.conf: error in ACL: unknown ACL condition/modifier in "continue = ${run{/bin/sh -c "\N{\N echo Subject: }}}"




Для теста я попробую обновить на current exim, но в общем случае не сильно бы хотелось уползать с сапорта меинстрема...
Кстати,  вопрос к тем кто используется exim на RHEL\CentOS,
каким репозиторием пользуетесь? я нашел текущий exim на atrams, но меня слегка настораживат данный реп. )




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

Ответить