[Sysadmins] pop3-сервер с users/passwords/mbox names в plain text file
Eugene Prokopiev
=?iso-8859-1?q?prokopiev_=CE=C1_stc=2Edonpac=2Eru?=
Вт Июн 12 11:20:20 MSD 2007
Konstantin A. Lepikhov пишет:
> Hi Eugene!
>
> Tuesday 12, at 12:59:32 AM you wrote:
>
>
>>Собственно, проблема не в postfix, т.к. dbmail с лукапом из mysql ведет
>>себя так же (unknown user: "user"), пока не определен mailbox_transport.
>
> тогда надо и fallback_transport выставить, чтобы не только виртуальным
> пользователям письма приходили.
Вот, кстати, я никогда не понимал, зачем это нужно:
mailbox_transport - Optional message delivery transport that the
local(8) delivery agent should use for mailbox delivery to all local
recipients, whether or not they are found in the UNIX passwd database.
fallback_transport - Optional message delivery transport that the
local(8) delivery agent should use for names that are not found in the
aliases(5) or UNIX password database.
Т.е. mailbox_transport используется, если получатель найден или не
найден в UNIX passwd database, т.е. всегда. Нет?
>
>
>> auth_socket_path = /var/run/dovecot/auth-master
>>}
>>auth default {
>> mechanisms = plain
>> passdb pam {
>> }
>> userdb passwd {
>> }
>> passdb passwd-file {
>> args = /etc/dovecot/dovecot.passwd
>> }
>> userdb static {
>> args = uid=8 gid=12 home=/mail/%u
>> }
>> user = root
>>}
>
> и где тут написано про auth-master? В auth default { нужно тоже его
> указывать:
>
> auth default {
> ..
> socket listen {
> # Note that we're setting a master socket. SMTP AUTH for Postfix and
> # Exim uses client sockets.
> master {
> path = /var/run/dovecot/auth-master
>
> ....
Хорошо, теперь конфиг выглядит так:
# cat /etc/dovecot/dovecot.conf
protocols = pop3
ssl_disable = yes
mail_extra_groups = mail
first_valid_uid = 8
mail_location = mbox:/mail/%u
mbox_min_index_size = 0
lock_method = fcntl
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
postmaster_address = postmaster на myhost.mydomain.com
auth_socket_path = /var/run/dovecot/auth-master
}
auth default {
mechanisms = plain
passdb pam {
}
userdb passwd {
}
passdb passwd-file {
args = /etc/dovecot/dovecot.passwd
}
userdb static {
args = uid=8 gid=12 home=/mail/%u
}
user = root
socket listen {
master {
path = /var/run/dovecot/auth-master
#mode = 0666
}
}
}
При отправке в логе:
Jun 12 11:12:29 myhost postfix/pickup[7777]: 479D013B65: uid=0 from=<root>
Jun 12 11:12:29 myhost postfix/cleanup[8376]: 479D013B65:
message-id=<20070612071229.479D013B65 на myhost.mydomain.com>
Jun 12 11:12:29 myhost postfix/qmgr[7779]: 479D013B65:
from=<root на myhost.mydomain.com>, size=306, nrcpt=1 (queue active)
Jun 12 11:12:29 myhost deliver(user на myhost.mydomain.com):
net_connect(/var/run/dovecot/auth-master) failed: Permission denied
Jun 12 11:12:29 myhost postfix/pipe[8379]: 479D013B65:
to=<user на myhost.mydomain.com>, orig_to=<user>, relay=dovecot,
delay=0.04, delays=0.02/0/0/0.02, dsn=4.3.0, status=deferred (temporary
failure)
Раскомментируем mode = 0666 (кстати, а как сделать правильно, например
поменять владельца вместо mode? user/group там есть, но они указывают
who started dovecot-auth). Теперь:
Jun 12 11:16:02 myhost postfix/pickup[7777]: C370113B7F: uid=0 from=<root>
Jun 12 11:16:02 myhost postfix/cleanup[8642]: C370113B7F:
message-id=<20070612071602.C370113B7F на myhost.mydomain.com>
Jun 12 11:16:02 myhost postfix/qmgr[7779]: C370113B7F:
from=<root на myhost.mydomain.com>, size=306, nrcpt=1 (queue active)
Jun 12 11:16:02 myhost postfix/pipe[8645]: C370113B7F:
to=<user на myhost.mydomain.com>, orig_to=<user>, relay=dovecot,
delay=0.04, delays=0.02/0/0/0.01, dsn=5.1.1, status=bounced (user unknown)
Jun 12 11:16:02 myhost postfix/cleanup[8642]: C98E613B83:
message-id=<20070612071602.C98E613B83 на myhost.mydomain.com>
Jun 12 11:16:02 myhost postfix/bounce[8647]: C370113B7F: sender
non-delivery notification: C98E613B83
Jun 12 11:16:02 myhost postfix/qmgr[7779]: C98E613B83: from=<>,
size=2050, nrcpt=1 (queue active)
Jun 12 11:16:02 myhost postfix/qmgr[7779]: C370113B7F: removed
Jun 12 11:16:02 myhost postfix/pipe[8645]: C98E613B83:
to=<john на myhost.mydomain.com>, orig_to=<root на myhost.mydomain.com>,
relay=dovecot, delay=0.02, delays=0.01/0/0/0.01, dsn=5.1.1,
status=bounced (user unknown)
Jun 12 11:16:02 myhost postfix/qmgr[7779]: C98E613B83: removed
Т.е. relay=dovecot вообще никуда доставить не может. Но если сделать так:
echo hello | /usr/lib64/dovecot/deliver -d user
то все будет доставлено:
Jun 12 11:17:23 myhost deliver(user): msgid=: saved mail to INBOX
Что теперь не правильно?
--
С уважением, Прокопьев Евгений
Подробная информация о списке рассылки Sysadmins