Отправляют одно, приходит несколько

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Михалыч
проходил мимо

Отправляют одно, приходит несколько

Непрочитанное сообщение Михалыч » 2009-11-08 0:26:43

На серваке стоит exim и dovecot. Всё нормально работает , но есть одно заманэ примерно половина входящих писем дублируются по 7-10 раз. т.е отправитель отослал одно письмо а я получил их 10 копий. Причём временной интервал между копиями одного письма состовляет от получаса до двух часов.

В чём может быть причина в exim или dovecot ? dovecot работает и как pop3 и imap.

Спам асасинов и прочего не стоит.

Может быть ещё нужна какая-то инфа ?

Хостинговая компания 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/

Аватара пользователя
---nebo---
старшина
Сообщения: 424
Зарегистрирован: 2008-11-01 21:06:23
Откуда: Киев
Контактная информация:

Re: Отправляют одно, приходит несколько

Непрочитанное сообщение ---nebo--- » 2009-11-08 1:24:18

DOVECOT - MDA, от тут 100% не при чем.
Ну давайте конфиг EXIM'а + /etc/aliases.

В екзиме особенно интересен раздел

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

system_aliases:
...участки под застройку в живописном месте Интернет

Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Re: Отправляют одно, приходит несколько

Непрочитанное сообщение Cancer » 2009-11-08 1:25:09

Показывайте логи!!!

Может быть проблема еще в фильтрах почтового клиента !

Михалыч
проходил мимо

Re: Отправляют одно, приходит несколько

Непрочитанное сообщение Михалыч » 2009-11-08 1:45:57

/etc/aliases

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

postmaster: root
nobody: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
security: root
/etc/exim.conf

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

perl_startup = do '/etc/exim.pl'

daemon_smtp_ports = 25 : 587

message_size_limit = 20M
smtp_receive_timeout = 5m
message_body_visible = 3000
print_topbitchars = true
deliver_queue_load_max = 5
split_spool_directory = yes

smtp_accept_max = 50
smtp_connect_backlog = 40
smtp_accept_max_per_host = 10
smtp_accept_queue = 22
smtp_accept_queue_per_connection = 10
recipients_max = 16
recipients_max_reject = true
accept_8bitmime

helo_allow_chars = _

log_selector = \
  +delivery_size \
  +sender_on_delivery \
  +received_recipients \
  +received_sender \
  +smtp_confirmation \
  +subject \
  +smtp_incomplete_transaction \
  -dnslist_defer \
  -host_lookup_failed \
  -queue_run \
  -rejected_header \
  -retry_defer \
  -skip_delivery

syslog_duplication = false

acl_smtp_rcpt = check_recipient
acl_smtp_data = check_message

addresslist whitelist_senders = lsearch;/etc/virtual/whitelist_senders
addresslist blacklist_senders = lsearch;/etc/virtual/blacklist_senders
domainlist blacklist_domains = lsearch;/etc/virtual/blacklist_domains
domainlist whitelist_domains = lsearch;/etc/virtual/whitelist_domains
domainlist local_domains = lsearch;/etc/virtual/domains
domainlist relay_domains = lsearch;/etc/virtual/domains : localhost
domainlist use_rbl_domains = lsearch;/etc/virtual/use_rbl_domains
hostlist auth_relay_hosts = *
hostlist bad_sender_hosts = lsearch;/etc/virtual/bad_sender_hosts
hostlist bad_sender_hosts_ip = net-lsearch;/etc/virtual/bad_sender_hosts
hostlist relay_hosts = net-lsearch;/etc/virtual/pophosts : 127.0.0.1
hostlist whitelist_hosts = lsearch;/etc/virtual/whitelist_hosts
hostlist whitelist_hosts_ip = net-lsearch;/etc/virtual/whitelist_hosts

allow_domain_literals = false

never_users = root

host_lookup = *

rfc1413_hosts = *
rfc1413_query_timeout = 0s

ignore_bounce_errors_after = 12h

timeout_frozen_after = 7d

trusted_users = mail:majordomo:apache

tls_certificate = /etc/exim.cert
tls_privatekey = /etc/exim.key
tls_require_ciphers = ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP
tls_advertise_hosts = *

begin acl

check_recipient:

deny  domains       = +local_domains
        local_parts   = ^[.] : ^.*[@%!/|]

accept  hosts = +auth_relay_hosts
        condition = ${if eq {$interface_port}{587} {yes}{no}}
        endpass
        message = relay not permitted, authentication required
        authenticated = *

  deny  domains       = !+local_domains
        local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./

  accept  hosts = :

  accept  sender_domains = +whitelist_domains

  accept  hosts = +whitelist_hosts
  accept  hosts = +whitelist_hosts_ip

  accept  senders = +whitelist_senders

  accept  local_parts = postmaster
          domains     = +local_domains

  accept  local_parts = abuse
          domains     = +local_domains

  accept  local_parts = hostmaster
          domains     =+local_domains

  deny message = Email blocked by LBL - to unblock see http://www.example.com/
       domains = +use_rbl_domains
       sender_domains = +blacklist_domains

  deny message = Email blocked by BSHL - to unblock see http://www.example.com/
       domains = +use_rbl_domains
       hosts = +bad_sender_hosts

  deny message = Email blocked by BSHL - to unblock see http://www.example.com/
       domains = +use_rbl_domains
       hosts = +bad_sender_hosts_ip

  deny message = Email blocked by BSAL - to unblock see http://www.example.com/
  domains = use_rbl_domains
  deny senders = +blacklist_senders

  deny message = Email blocked by SPAMHAUS - to unblock see http://www.example.com/
        hosts = !+relay_hosts
       domains = +use_rbl_domains
       !authenticated = *
       dnslists = zen.spamhaus.org

  deny message = Email blocked by NJABL - to unblock see http://www.example.com/
       hosts = !+relay_hosts
       domains = +use_rbl_domains
       !authenticated = *
       dnslists = dnsbl.njabl.org

  accept  domains = +local_domains
          endpass
          message = "Unknown User"
          verify = recipient

  accept  domains = +relay_domains
          endpass
          verify=recipient

  accept  hosts = +relay_hosts
  accept  hosts = +auth_relay_hosts
          endpass
          message = authentication required
          authenticated = *
  deny    message = relay not permitted

  deny    message = relay not permitted

check_message:
  accept

begin authenticators

plain:
    driver = plaintext
    public_name = PLAIN
    server_prompts = :
    server_condition = "${perl{smtpauth}}"
    server_set_id = $2

login:
    driver = plaintext
    public_name = LOGIN
    server_prompts = "Username:: : Password::"
    server_condition = "${perl{smtpauth}}"
    server_set_id = $1

begin routers

lookuphost:
  driver = dnslookup
  domains = ! +local_domains
  ignore_target_hosts = 127.0.0.0/8
  condition = "${perl{check_limits}}"
  transport = remote_smtp
  no_more

majordomo_aliases:

  driver = redirect
  allow_defer
  allow_fail
  data = ${if exists{/etc/virtual/${domain}/majordomo/list.aliases}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/majordomo/list.aliases}}}}
  domains = lsearch;/etc/virtual/domainowners
  file_transport = address_file
  group = daemon
  pipe_transport = majordomo_pipe
  retry_use_local_part
  no_rewrite
  user = majordomo

majordomo_private:
  driver = redirect
  allow_defer
  allow_fail
  condition = "${if or { {eq {$received_protocol} {local}} \
                         {eq {$received_protocol} {spam-scanned}} } {true} {false} }"
  data = ${if exists{/etc/virtual/${domain}/majordomo/private.aliases}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/majordomo/private.aliases}}}}
  domains = lsearch;/etc/virtual/domainowners
  file_transport = address_file
  group = daemon
  pipe_transport = majordomo_pipe
  retry_use_local_part
  user = majordomo

domain_filter:
  driver = redirect
  allow_filter
  no_check_local_user
  condition = "${if exists{/etc/virtual/${domain}/filter}{yes}{no}}"
  user = "${lookup{$domain}lsearch{/etc/virtual/domainowners}{$value}}"
  group = "mail"
  file = /etc/virtual/${domain}/filter
  directory_transport = address_file
  pipe_transport = virtual_address_pipe
  retry_use_local_part
  no_verify

uservacation:
   driver = accept
   condition = ${lookup{$local_part} lsearch {/etc/virtual/${domain}/vacation.conf}{yes}{no}}
   require_files = /etc/virtual/${domain}/reply/${local_part}.msg
   transport = uservacation
   unseen

userautoreply:
   driver = accept
   condition = ${lookup{$local_part} lsearch {/etc/virtual/${domain}/autoresponder.conf}{yes}{no}}
   require_files = /etc/virtual/${domain}/reply/${local_part}.msg
   transport = userautoreply
   unseen

virtual_aliases_nostar:
  driver = redirect
  allow_defer
  allow_fail
  data = ${if exists{/etc/virtual/${domain}/aliases}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/aliases}}}}
  file_transport = address_file
  group = mail
  pipe_transport = virtual_address_pipe
  retry_use_local_part
  unseen

virtual_user:
  driver = accept
  condition = ${perl{save_virtual_user}}
  domains = lsearch;/etc/virtual/domainowners
  group = mail
  retry_use_local_part
  transport = virtual_localdelivery

virtual_aliases:
  driver = redirect
  allow_defer
  allow_fail
  condition = ${if eq {}{${if exists{/etc/virtual/${domain}/aliases}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/aliases}}}}}{yes}{no}}
  data = ${if exists{/etc/virtual/$domain/aliases}{${lookup{$local_part}lsearch*{/etc/virtual/$domain/aliases}}}}
  file_transport = address_file
  group = mail
  pipe_transport = virtual_address_pipe
  retry_use_local_part

drop_solo_alias:
  driver = redirect
  allow_defer
  allow_fail
  data = ${if exists{/etc/virtual/$domain/aliases}{${lookup{$local_part}lsearch{/etc/virtual/$domain/aliases}}}}
  file_transport = devnull
  group = mail
  pipe_transport = devnull
  retry_use_local_part

userforward:
  driver = redirect
  allow_filter
  check_ancestor
  check_local_user
  no_expn
  file = $home/.forward
  file_transport = address_file
  pipe_transport = address_pipe
  reply_transport = address_reply
  no_verify

system_aliases:
  driver = redirect
  allow_defer
  allow_fail
  data = ${lookup{$local_part}lsearch{/etc/aliases}}
  file_transport = address_file
  pipe_transport = address_pipe
  retry_use_local_part

localuser:
  driver = accept
  check_local_user
  condition = "${if eq {$domain} {$primary_hostname} {yes} {no}}"
  transport = local_delivery

begin transports

spamcheck:
  driver = pipe
batch_max = 100   
command = /usr/sbin/exim -oMr spam-scanned -bS
  current_directory = "/tmp"
  group = mail
  home_directory = "/tmp"
  log_output
  message_prefix =
  message_suffix =
  return_fail_output
  no_return_path_add
  transport_filter = /usr/bin/spamc -u ${lookup{$domain}lsearch*{/etc/virtual/domainowners}{$value}}
  use_bsmtp
  user = mail


majordomo_pipe:
  driver = pipe
  group = daemon
  return_fail_output
  user = majordomo


local_delivery:
  driver = appendfile
  delivery_date_add
  envelope_to_add
  directory = /home/$local_part/Maildir/
  directory_mode = 770
  create_directory = true
  maildir_format
  group = mail
  mode = 0660
  return_path_add
  user = ${local_part}

virtual_localdelivery:
  driver = appendfile
  create_directory
  delivery_date_add
  directory_mode = 770
  envelope_to_add
  directory = /home/${lookup{$domain}lsearch*{/etc/virtual/domainowners}{$value}}/imap/${domain}/${local_part}/Maildir
  maildir_format
  group = mail
  mode = 660
  return_path_add
  user = "${lookup{$domain}lsearch*{/etc/virtual/domainowners}{$value}}"
  quota = ${if exists{/etc/virtual/${domain}/quota}{${lookup{$local_part}lsearch*{/etc/virtual/${domain}/quota}{$value}{0}}}{0}}

uservacation:
  driver = autoreply
  file = /etc/virtual/${domain}/reply/${local_part}.msg
  from = "${local_part}@${domain}"
  log = /etc/virtual/${domain}/reply/${local_part}.log
  no_return_message
  subject = "${if def:h_Subject: {Autoreply: ${quote:${escape:$h_Subject:}}} {I am on vacation}}"
  text = "\
        ------                                                           ------\n\n\
        This message was automatically generated by email software\n\
        The delivery of your message has not been affected.\n\n\
        ------                                                           ------\n\n"
  to = "${sender_address}"
  user = mail
  once = /etc/virtual/${domain}/reply/${local_part}.once
  once_file_size = 100K
  once_repeat = 2d

userautoreply:
  driver = autoreply
  bcc = ${lookup{${local_part}} lsearch {/etc/virtual/${domain}/autoresponder.conf}{$value}}
  file = /etc/virtual/${domain}/reply/${local_part}.msg
  from = "${local_part}@${domain}"
  log = /etc/virtual/${domain}/reply/${local_part}.log
  no_return_message
  subject = "${if def:h_Subject: {Autoreply: ${quote:${escape:$h_Subject:}}} {Autoreply Message}}"
  to = "${sender_address}"
  user = mail
  once = /etc/virtual/${domain}/reply/${local_part}.once
  once_file_size = 100K
  once_repeat = 2d

devnull:
  driver = appendfile
  file = /dev/null

remote_smtp:
  driver = smtp

address_pipe:
  driver = pipe
  return_output

virtual_address_pipe:

  driver = pipe
  group = nobody
  return_output
  user = "${lookup{$domain}lsearch* {/etc/virtual/domainowners}{$value}}"

address_file:
  driver = appendfile
  delivery_date_add
  envelope_to_add
  return_path_add

address_reply:
  driver = autoreply

begin retry

*                      *           F,2h,15m; G,16h,1h,1.5; F,7d,8h
Последний раз редактировалось Laa 2009-11-09 13:28:06, всего редактировалось 1 раз.
Причина: Убедительная просьба юзать теги [code] при оформлении листингов.

Аватара пользователя
---nebo---
старшина
Сообщения: 424
Зарегистрирован: 2008-11-01 21:06:23
Откуда: Киев
Контактная информация:

Re: Отправляют одно, приходит несколько

Непрочитанное сообщение ---nebo--- » 2009-11-08 1:59:19

Михалыч, возьмите конфиг екзима в теги КОД, оформляйте сообщения
Спам асасинов и прочего не стоит.
:smile:

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

spamcheck:
driver = pipe
batch_max = 100 
command = /usr/sbin/exim -oMr spam-scanned -bS
current_directory = "/tmp"
group = mail
home_directory = "/tmp"
log_output
message_prefix =
message_suffix =
return_fail_output
no_return_path_add
transport_filter = /usr/bin/spamc -u ${lookup{$domain}lsearch*{/etc/virtual/domainowners}{$value}}
use_bsmtp
user = mail
и покажите еще

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

/etc/virtual/${domain}/majordomo/list.aliases
/etc/virtual/${domain}/majordomo/private.aliases
/etc/virtual/${domain}/aliases
ну и как подметил коллега, когда это происходит - кусок лога в то время
...участки под застройку в живописном месте Интернет

Михалыч
проходил мимо

Re: Отправляют одно, приходит несколько

Непрочитанное сообщение Михалыч » 2009-11-08 15:08:30

Секцию со спам асасином которую тут показали закоментировал всю. (спасибо)

Файлов нету

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

/etc/virtual/${domain}/majordomo/list.aliases
/etc/virtual/${domain}/majordomo/private.aliases
А /etc/virtual/${domain}/aliases
Где домен test11.com.ua

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

test11: test11

*: :fail:
Из лога

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

2009-11-06 15:49:29 1N6QzJ-0001mH-UO => parts <parts@test11.com.ua> F=<avto@y.net> R=virtual_user T=virtual_localdelivery S=175830
2009-11-06 15:49:29 1N6QzJ-0001mH-UO Completed

2009-11-06 16:04:29 1N6REg-0001pR-Uq => parts <parts@test11.com.ua> F=<avto@y.net> R=virtual_user T=virtual_localdelivery S=175830
2009-11-06 16:04:29 1N6REg-0001pR-Uq Completed

2009-11-06 16:34:29 1N6RX8-0001sz-BW => parts <parts@test11.com.ua> F=<avto@y.net> R=virtual_user T=virtual_localdelivery S=175830
2009-11-06 16:34:29 1N6RX8-0001sz-BW Completed


Аватара пользователя
---nebo---
старшина
Сообщения: 424
Зарегистрирован: 2008-11-01 21:06:23
Откуда: Киев
Контактная информация:

Re: Отправляют одно, приходит несколько

Непрочитанное сообщение ---nebo--- » 2009-11-08 19:09:35

судя из лога не видно, чтобы EXIM разослал кому-то письма.
Тем более , если бы сработал алиас, то

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

2009-11-06 16:34:29 1N6RX8-0001sz-BW => parts <parts@test11.com.ua> F=<avto@y.net> R=virtual_user T=virtual_localdelivery
приблизительно имел такой вид

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

2009-11-06 16:34:29 1N6RX8-0001sz-BW => [b]alias_user[/b] <parts@test11.com.ua> F=<avto@y.net> R=virtual_user T=virtual_localdelivery
В показаном логе доставка осуществляется с помощью транспорта T=virtual_localdelivery

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

virtual_localdelivery:
driver = appendfile
create_directory
delivery_date_add
directory_mode = 770
envelope_to_add
directory = /home/${lookup{$domain}lsearch*{/etc/virtual/domainowners}{$value}}/imap/${domain}/${local_part}/Maildir
maildir_format
group = mail
mode = 660
return_path_add
user = "${lookup{$domain}lsearch*{/etc/virtual/domainowners}{$value}}"
quota = ${if exists{/etc/virtual/${domain}/quota}{${lookup{$local_part}lsearch*{/etc/virtual/${domain}/quota}{$value}{0}}}{0}}
,
а он кажись "ровный".


Может, проблема в этом, *: :fail:

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

#cat /etc/virtual/test11.com.ua/aliases
test11: test11

*: :fail:
...участки под застройку в живописном месте Интернет

Михалыч
проходил мимо

Re: Отправляют одно, приходит несколько

Непрочитанное сообщение Михалыч » 2009-11-09 23:06:55

Закоментировал строку

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

*: :fail:
Дубли всёравно продолжают идти.

Какие ещё могут быть варианты ?

Аватара пользователя
---nebo---
старшина
Сообщения: 424
Зарегистрирован: 2008-11-01 21:06:23
Откуда: Киев
Контактная информация:

Re: Отправляют одно, приходит несколько

Непрочитанное сообщение ---nebo--- » 2009-11-10 14:56:00

Давайте тогда максимально детализированную информацию:
а)такое происходит когда отправитель любой или только определенные
б)кому именно приходят не их письма или всем пользователям
в)письмо приходит без изменений или есть изменение в теме, теле

Попробуйте предоставить более детализированный лог.

Для разбора лога установите

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

/usr/ports/sysutils/colorize
и добавте в ~/.cshrc

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

alias tail      "tail \!* | colorize"
и тогда выводите лог через tail, он будет разными цветами выделять аргументы, легче будет разбирать.
...участки под застройку в живописном месте Интернет