[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