Назад | Перейти на главную страницу

Я настроил почтовый сервер postfix в Linux с dovecot. Теперь проблема в том, что когда я настраиваю автоматический ответ, я не отвечаю на два письма отправителю

Я настроил почтовый сервер postfix в Linux с dovecot. Теперь проблема в том, что когда я настраиваю автоответ, он отвечает отправителю двумя письмами. Я использовал Vacation.pl, Perl-скрипт администратора postfix для автоматического ответа на письмо отправителю. Я настроил его раньше и проверил, что проблем не было. Но после изменения структуры базы данных я изменил конфигурацию постфикса, конфигурацию dovecot и скрипт Vacation.pl. Как я думаю, в запросе к базе данных проблем нет.

У меня такая же проблема, когда я отправляю скрытую копию какому-то пользователю. Пользователь получит два письма. Я не нашел проблему, в которой это в голубятне, автоответчик.

Мой master.cf файл, как показано ниже.

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -        -       -       -       smtpd 
#    -o content_filter=spamfilter:dummy
     -o content_filter=vacation:dummy
     -o content_filter=dfilt:dummy
vacation  unix  -   n    n   -   -   pipe
    flags=Rq user=vacation argv=/var/spool/vacation/vacation3.pl -f ${sender} -- ${recipient}
# flags=Rq user=vacation argv=/usr/bin/perl argv=/var/spool/vacation/vacation.pl -f ${sender} -- ${recipient}
pickup    fifo  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
#qmgr     fifo  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       n       -       -       smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay     unix  -       -       n       -       -       smtp
    -o smtp_fallback_relay=
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
retry     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  -       -       n       -       1       scache
#
#spamassassin unix -      n       n       -       -       pipe
#    flags=Rq user=spamd argv=/usr/bin/spamc -u ${user} -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
dovecot    unix  -       n       n       -       -       pipe
    flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -d ${recipient}
#spamfilter unix     -   n   n   -   -   pipe
#   flags=Rq user=spamfilter argv=/usr/local/bin/spamfilter.sh -f ${sender} -- ${recipient}
#spamfilter unix -   n   n   -   -   pipe
#    flags=Rq user=vmail argv=/usr/bin/spamc -u ${user}@${domain} -e /usr/sbin/sendmail.postfix -oi -f ${sender} ${recipient}
dfilt     unix    -       n       n       -       -       pipe
    flags=Rq user=filterAlt argv=/etc/postfix/disclaimer -f ${sender} -- ${recipient}
#vacation  unix  -       n        n       -       -       pipe
#    flags=Rq user=vacation argv=/var/spool/vacation/vacation3.pl -f ${sender} -- ${recipient}

Вы можете отправить ответ на отпуск через плагины сита. Они также добавят мощные возможности фильтрации почты на стороне сервера.

Пример сит-файла для автоответчика:

require ["fileinto", "vacation"];

vacation
  # Reply at most once a day to a same sender
  :days 1
  :subject "Out of office reply"
  # List of additional recipient addresses which are included in the auto replying.
  # If a mail's recipient is not the envelope recipient and it's not on this list,
  # no vacation reply is sent for it.
  :addresses ["j.doe@company.dom", "john.doe@company.dom"]
"I'm out of office, please contact Joan Doe instead.
Best regards
John Doe"; 

Видеть Страница сита Dovecot Чтобы получить больше информации.

У меня тоже проблема с фильтрами содержимого. Добавление этой строки после фильтров содержимого позволило устранить отправку нескольких сообщений.

-o receive_override_options=no_address_mappings

добавьте эту строку после всех ваших фильтров в декларацию smtp, чтобы она выглядела так ...

smtp      inet  n       -        -       -       -       smtpd 
#    -o content_filter=spamfilter:dummy
     -o content_filter=vacation:dummy
     -o content_filter=dfilt:dummy
     -o receive_override_options=no_address_mappings

По общему признанию, я только тестировал его со своим фильтром spamassassin. Сообщите мне, если это сработает.