postfix + dovecot не приходит почта

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
urello
рядовой
Сообщения: 44
Зарегистрирован: 2009-07-30 20:56:54

postfix + dovecot не приходит почта

Непрочитанное сообщение urello » 2009-07-31 20:46:34

FreeBSD 7.0
postfix-2.5.6,1
dovecot-1.1.11
При использовании virtual в качестве транспорта всё работает.
При использовании dovecot в качестве транспорта почта не приходит, в maillog'e следующее:

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

Jul 31 20:20:48 klotik postfix/pipe[31303]: 981065C3D: to=<адрес@мой.домен>, relay=dovecot, delay=1967, delays=1967/0.02/0/0.02, dsn=4.3.0, status=deferred (temporary failure.)
Пытался настроить логгинг dovecot, но при добавлении log_path = /var/log/dovecot.log в dovecot.conf сообщение в maillog'e приобретает следующий вид:

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

Jul 31 20:25:48 klotik postfix/pipe[31313]: A51905C3A: to=<адрес@мой.домен>, relay=dovecot, delay=1177, delays=1177/0.01/0/0.01, dsn=4.3.0, status=deferred (temporary failure. Command output: Can't open log file /var/log/dovecot.log: Permission denied )
/var/log/dovecot.log принадлежит dovecot:mail пробовал изменить на postfix:mail - не помогает.
Конфиги.
main.cf:

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

queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
mail_owner = postfix
default_privs = nobody
mydomain = чтототам
myorigin = $virtual_mailbox_domains
# vurtual address class section
virtual_mailbox_domains = мой.домен
virtual_mailbox_base = /var/mail/virtualmail/мой.домен/
virtual_mailbox_maps = hash:/var/mail/virtualmail/userlist
virtual_uid_maps = static:1111
virtual_gid_maps = static:1111
virtual_transport = dovecot
######END#####
inet_interfaces = all
#mydestination = $mydomain
unknown_local_recipient_reject_code = 550
mynetworks_style = subnet
mynetworks = 192.168.1.0/24, 127.0.0.0/8


smtpd_banner = sho_nado?
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = no
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = no
#sender_canonical_maps = hash:/usr/local/etc/postfix/sender_canonical
#local_recipient_maps = hash:/var/mail/virtualmail/userlist
dovecot_destination_recipient_limit = 1
#mailbox_transport = dovecot
#fallback_transport = dovecot
relay_domains =
master.cf:

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

smtp      inet  n       -       n       -       -       smtpd
pickup    fifo  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
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
relay     unix  -       -       n       -       -       smtp
        -o smtp_fallback_relay=
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
dovecot   unix  -       n       n       -       -       pipe
   flags=DRhu user=virtualmail:virtualmail argv=/usr/local/libexec/dovecot/deliver -f ${sender} -d ${recipient}
dovecot.conf:

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

base_dir = /var/run/dovecot/
protocols = imap pop3
listen = *
disable_plaintext_auth = no
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot.debug
ssl_disable = yes
login_dir = /var/run/dovecot/login
login_chroot = yes
login_user = dovecot
login_process_size = 64
login_process_per_connection = yes
login_processes_count = 3
login_max_processes_count = 128
login_max_connections = 256
login_greeting = Huilo world!
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
login_log_format = %$: %s
mail_location = mbox:/var/mail/virtualmail/мой.домен/%n/mail
mail_privileged_group = mail
mail_debug = yes
mail_log_prefix = "%Us(%u): "
dotlock_use_excl = yes
verbose_proctitle = yes
first_valid_uid = 1000
first_valid_gid = 0
maildir_copy_with_hardlinks = yes
protocol imap {
  login_greeting_capability = yes
  imap_client_workarounds = delay-newmail netscape-eoh tb-extra-mailbox-sep
}

protocol pop3 {
  pop3_uidl_format = %08Xu%08Xv
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol managesieve {
  sieve=~/.dovecot.sieve
  sieve_storage=~/sieve
}
protocol lda {
  postmaster_address = postmaster@example.com
  sendmail_path = /usr/local/sbin/sendmail
}
auth_username_format = %Lu
auth default {
  mechanisms = plain login
passdb passwd-file {
 args = /var/mail/virtualmail/password
}
userdb static {
 args = uid=1111 gid=1111 home=/var/mail/virtualmail/мой.домен/%n
}
  passdb pam {
    args = session=yes dovecot
  }
  userdb passwd {
    args = blocking=yes
  }
  user = root
  socket listen {
    master {
      path = /var/run/dovecot/auth-master
      mode = 0600
    }
    client {
      path = /var/run/dovecot/auth-client
      mode = 0660
    }
  }
}
dict {
}
dict_db_config = /usr/local/etc/dovecot-db.conf
plugin {
}
Последний раз редактировалось urello 2009-08-03 18:05:15, всего редактировалось 1 раз.

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

urello
рядовой
Сообщения: 44
Зарегистрирован: 2009-07-30 20:56:54

Re: postfix + dovecot не приходит почта

Непрочитанное сообщение urello » 2009-08-03 7:11:00

И тут не знают, печально :cry:

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: postfix + dovecot не приходит почта

Непрочитанное сообщение princeps » 2009-08-03 7:49:47

не в тот раздел, в MTA надо постить такие треды.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

urello
рядовой
Сообщения: 44
Зарегистрирован: 2009-07-30 20:56:54

Re: postfix + dovecot не приходит почта

Непрочитанное сообщение urello » 2009-08-03 8:10:26

Пардон :oops: Может кто-то из админов перенести, дабы не плодить темы

urello
рядовой
Сообщения: 44
Зарегистрирован: 2009-07-30 20:56:54

Re: postfix + dovecot не приходит почта

Непрочитанное сообщение urello » 2009-08-03 9:35:15

Спасибо! Вопрос остается открытым :roll:

Аватара пользователя
skeletor
майор
Сообщения: 2527
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: postfix + dovecot не приходит почта

Непрочитанное сообщение skeletor » 2009-08-03 13:29:53

Поставь права на файл 0644, root:wheel.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

urello
рядовой
Сообщения: 44
Зарегистрирован: 2009-07-30 20:56:54

Re: postfix + dovecot не приходит почта

Непрочитанное сообщение urello » 2009-08-03 13:38:51

skeletor писал(а):Поставь права на файл 0644, root:wheel.
Предположил, что под файлом вы подразумеваете /var/log/dovecot.log
Поставил:

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

ls /var/log/dovecot.log
-rw-r--r--  1 root  wheel  -  104K  3 сер 13:35 /var/log/dovecot.log
Ничего не изменилось, та же ошибка в логах.

Аватара пользователя
skeletor
майор
Сообщения: 2527
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: postfix + dovecot не приходит почта

Непрочитанное сообщение skeletor » 2009-08-03 15:03:01

Тогда 2 варианта: либо поставить на файл права 0666, либо писать логи dovecot'a в /var/log/maillog
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

moury
сержант
Сообщения: 249
Зарегистрирован: 2009-02-06 23:02:40
Откуда: Москва
Контактная информация:

Re: postfix + dovecot не приходит почта

Непрочитанное сообщение moury » 2009-08-03 16:26:25

Что-то у Вас не то. По идее, все правильно.

1. Почему Вы явно не прописали auth_socket_path для lda? Вы уверены, что эта переменная подхватилась по умолчанию?

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

3. Рекомендую добавить в

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

  socket listen {
    master {
      path = /var/run/dovecot/auth-master
      mode = 0600
    }
строки

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

user = virtualmail 
group = virtualmail 
4. Включите отладки побольше. У Вас включена только mail_debug.
Сисадмин - вождь апачей

urello
рядовой
Сообщения: 44
Зарегистрирован: 2009-07-30 20:56:54

Re: postfix + dovecot не приходит почта

Непрочитанное сообщение urello » 2009-08-03 18:54:26

добавил:
auth_socket_path = /var/run/dovecot/auth-master
в секцию protocol lda {

добавил
user = virtualmail
group = virtualmail
в socket listen {
master {

добавил
auth_debug = yes
auth_verbose = yes
auth_debug_passwords = yes

изменил направление логов

Но ничего не изменилось (

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

Aug  3 18:29:14 klotik postfix/pipe[37594]: ACB065C3D: to=<адрес@мой.домен>, relay=dovecot, delay=563, delays=563/0.02/0/0.01, dsn=4.3.0, status=deferred (temporary failure. Command output: Can't open log file /var/log/maillog: Permission denied )

moury
сержант
Сообщения: 249
Зарегистрирован: 2009-02-06 23:02:40
Откуда: Москва
Контактная информация:

Re: postfix + dovecot не приходит почта

Непрочитанное сообщение moury » 2009-08-04 8:50:53

Приведите вывод команды "dovecot -n".

Меня смущает, что Вы написали "изменил направление логов". Звучит как " задал log_path = /var/log/maillog".
Чтобы включить журналирование по умолчанию, нужно закомментировать все упоминания о логах в dovecot.conf.
Сисадмин - вождь апачей

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: postfix + dovecot не приходит почта

Непрочитанное сообщение dikens3 » 2009-08-04 9:03:50

Руками создай файл /var/log/dovecot.log с нужными правами. Для начала 777 поставь.
Там была проблема с созданием логов.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

HRonik
мл. сержант
Сообщения: 130
Зарегистрирован: 2007-11-07 15:33:29

Re: postfix + dovecot не приходит почта

Непрочитанное сообщение HRonik » 2009-08-04 9:37:30

А если просто дать права virtualmail на /var/log/maillog ?

urello
рядовой
Сообщения: 44
Зарегистрирован: 2009-07-30 20:56:54

Re: postfix + dovecot не приходит почта

Непрочитанное сообщение urello » 2009-08-04 11:42:31

Проблема решена.
Я подозреваю, что postfix и dovecot пытались писать в один файл, что являлось причиной конфликта.
Направил обеих через syslog - конфликт прекратился и всплыла искомая ошибка:

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

passdb doesn't support lookups, can't verify user's existence
Лёгкий гуглёж показал, что в моём случае это лечится добавлением строки

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

allow_all_users=yes
к аргументам userdb static
Спасибо всем участвовавшим в решении проблемы.