Почему exim делает 3 копии письма?

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
kortes
рядовой
Сообщения: 41
Зарегистрирован: 2008-03-12 10:12:25
Откуда: г. Астрахань
Контактная информация:

Почему exim делает 3 копии письма?

Непрочитанное сообщение kortes » 2008-04-15 13:17:19

Гуру экзима, подскажите пожалуйста, почему пользователю spam@mydomain.ru письмо сваливается в 3-х экземплярах? Т.е. я понимаю, что проблема видимо в роутерах, вернее в их неправильном расположении, но никак не пойму, как их расположить, что письма прератили плодиться в 3-х экземплярах и в тоже время всё работало. Заранее спасибо!

Вот так расположены роутеры:

Код: Выделить всё

begin routers

dspam_addspam:
    driver = accept
    expn = false
    domains = +local_domains
    local_parts = spam
    transport = addspam
    headers_add = "X-DSPAM-REPORT: Missclassified"

dspam_nospam:
    driver = accept
    expn = false
    domains = +local_domains
    local_parts = ham:nospam
    transport = nospam
    headers_add = "X-DSPAM-REPORT: Falsepositive"

#Этот роутер нужен для того, чтобы exim видел smarthost для домена Lotus Notes
smarthost_routes:
  driver = manualroute
  transport = remote_smtp
  route_data = ${lookup{$domain}partial-lsearch{/etc/exim4/smarthosts}}

dnslookup:
    driver = dnslookup
    domains = ! +local_domains
    transport = remote_smtp
    ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
    no_more

system_aliases:
    driver      = redirect
    allow_fail
    allow_defer
    data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
            `address`='${quote_mysql:$local_part@$domain}' OR \
            `address`='${quote_mysql:@$domain}'}}

spamscan_router:
    no_verify
    headers_remove = X-FILTER-SPAM : X-Spam-Score : X-Spam-Score-Gate : X-Spam-Report : X-Spam-Gate-Subject : X-Spam-Flag : X-S
    condition = "${if and {{!eq{$received_protocol}{spam-scanned}} {!def:h_X-FILTER-SPAM:}} {1}{0}}"
    driver = accept
    headers_add = X-FILTER-SPAM: ICF Team Spam Filter on $primary_hostname, $tod_full\n\
                    X-SENDER-INFO: ${if def:authenticated_id {ID - ${authenticated_id},}} \
                    ${if def:authenticated_sender {authenticated_sender - ${authenticated_sender},}} \
                 ${if def:sender_ident {rfc1413(ident) - ${sender_ident},}} \
                ${if def:originator_uid {UID - ${originator_uid},}} \
               ${if def:originator_gid {GID - ${originator_gid}}}
    local_parts = !addham:!addspam:!ham:!spam:!sexy
    transport = spamcheck_transport
    require_files = /var/spool/dspam:/usr/bin/dspam

local_delivery_spam_router:
    driver                       = accept
    domains                      = +local_domains
    condition                    = ${if match{$h_X-DSPAM-Result:}{Spam}}
    transport                    = local_delivery_spam_transport
    no_more

#Смс через веб.
move_router:
    driver = redirect
    no_verify
    data = "${if eq{$acl_m1}{1}{ewsmsc@mydomain.ru}{$local_part@$domain}}"

#Смотрим, пересылать или нет почту на Lotus Notes
userforward:
    driver = redirect
    allow_fail
    allow_defer
    data = ${lookup mysql{SELECT userfwd FROM exim.mailbox \
            WHERE (username='${quote_mysql:$local_part@$domain}' AND domain='${domain}')}}

dovecot_user:
  driver = accept
  condition = ${lookup mysql{SELECT `goto` FROM \
            `alias` WHERE \
            `address`='${quote_mysql:$local_part@$domain}' OR \
            `address`='${quote_mysql:@$domain}'}{yes}{no}}
  transport = dovecot_delivery

а это траспорты:

Код: Выделить всё

begin transports
local_delivery_spam_transport:
    driver = pipe
    command = /usr/lib/dovecot/deliver -d spam@mydomain.ru
    message_prefix =
    message_suffix =
    delivery_date_add
    envelope_to_add
    return_path_add

spamcheck_transport:
    driver = pipe
    command = "/usr/sbin/exim4 -oi -oMr spam-scanned -bS"
    transport_filter = /usr/bin/dspam --stdout --deliver=innocent \
             --user $local_part@$domain --mail-from "${lc:$sender_address}" \
             --rcpt-to "${lc:$local_part}@${lc:$domain}"
    user = Debian-exim
    group = mail
    use_bsmtp = true
    home_directory = "/var/spool/dspam"
    current_directory = "/var/spool/dspam"
    delivery_date_add = true
    return_path_add = true
    envelope_to_add = true
    log_fail_output = true
    log_defer_output = true
    return_fail_output = true
    message_prefix = ""
    message_suffix = ""
    temp_errors = *

addspam:
    driver = pipe
    command = /usr/bin/dspam --user "${lc:$sender_address}" --class=spam --source=error
    return_path_add = false
    return_fail_output = true
    log_output = true
    home_directory = "/var/spool/dspam"
    current_directory = "/var/spool/dspam"
    user = Debian-exim
    group = mail
    message_prefix = ""
    message_suffix = ""

nospam:
    driver = pipe
    command = /usr/bin/dspam --user "${lc:$sender_address}" --class=innocent --source=error --deliver=innocent %u
    return_path_add = false
    return_fail_output = true
    log_output = true
    home_directory = "/var/spool/dspam"
    current_directory = "/var/spool/dspam"
    user = Debian-exim
    group = mail
    message_prefix = ""
    message_suffix = ""

remote_smtp:
  driver = smtp

dovecot_delivery:
  driver = pipe
  command = /usr/lib/dovecot/deliver -d $local_part@$domain
  message_prefix =
  message_suffix =
  delivery_date_add
  envelope_to_add
  return_path_add
  log_output
  user = Debian-exim

address_pipe:
  driver = pipe
  return_output

address_reply:
  driver = autoreply

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
kortes
рядовой
Сообщения: 41
Зарегистрирован: 2008-03-12 10:12:25
Откуда: г. Астрахань
Контактная информация:

Re: Почему exim делает 3 копии письма?

Непрочитанное сообщение kortes » 2008-04-16 18:24:45

Уф, оказывается плодилось по 3 письма в папке юзера spam@mydomain.ru, потому что включён был вот такой фильтр
system_filter = /etc/exim4/copy_mail.conf

Код: Выделить всё

if $recipients is "${lookup mysql{SELECT `address` FROM `alias` WHERE `address`='$recipients' AND `copy_mail`='1' LIMIT 1}}"
then
        unseen deliver mail_in@mydomain.ru
endif

if $sender_address is "${lookup mysql{SELECT `address` FROM `alias` WHERE `address`='$sender_address' AND `copy_mail`='1' LIMIT 1}}"
then
        unseen deliver mail_out@mydomain.ru
endif
Наше начальство требует, чтоб переписка вся сохранялась... Да и самому удобно смотреть, какой спам к кому проскочил или кому же ушло письмо, которого ждёт другой. Но вот с дспамом получается затык тогда. По хорошему, указать dspam'у, чтоб он не проверял на спам письма, идущие на эти ящики, но тогда есть вероятность, что их засрут снаружи. Да и переписку надо как-то сохранять всю...

Может кто подскажет, каким путём ещё можно пойти?