Dovecot2+Exim4+FreeBSD11
Добавлено: 2017-01-19 14:09:10
В общем столкнулся с проблемой не создаются директории при попытке входа в IMAP клиент или приходе письма на почтовый ящик. Если создать директорию руками то почта начинает приходить и вход становится возможным. с EXIM всё ровно. И с самой почтой если самому создать директорию. и сменить создателя.
Права на директорию с почтой:
drwxrwxr-x 57 mailnull mailnull 1024 Dec 7 10:22 telefonet.ru (опасно не в целях эксперимента всё норм)
/etc/group.conf
mailnull:*:26:mail,mailnull
dovecot-lda.log
Jan 19 13:43:17 imap(testor@telefonet.ru): Debug: Effective uid=26, gid=26, home=/var/mail/telefonet.ru/testor
Jan 19 13:43:17 imap(testor@telefonet.ru): Debug: Home dir not found: /var/mail/telefonet.ru/testor
Jan 19 13:43:17 imap(testor@telefonet.ru): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir: /var/mail/telefonet.ru/testor
Jan 19 13:43:17 imap(testor@telefonet.ru): Debug: maildir++: root= /var/mail/telefonet.ru/testor, index=, indexpvt=, control=, inbox= /var/mail/telefonet.ru/testor, alt=
Jan 19 13:43:17 imap(testor@telefonet.ru): Debug: Namespace : /var/mail/telefonet.ru/testor doesn't exist yet, using default permissions
Jan 19 13:43:17 imap(testor@telefonet.ru): Debug: Namespace : Using permissions from /var/mail/telefonet.ru/testor: mode=0700 gid=default
Jan 19 13:43:17 imap(testor@telefonet.ru): Error: User initialization failed: Namespace '': mkdir( /var/mail/telefonet.ru/testor) in directory /var/mail/dovecot failed: Permission denied (euid=26(mailnull) egid=26(mailnull) missing +w perm: /var/mail/dovecot, dir owned by 0:0 mode=0755)
Jan 19 13:43:17 imap: Error: Invalid user settings. Refer to server log for more information.
messages.log
Jan 19 13:41:17 mail clamd[88591]: /var/spool/exim/scan/1cUA9d-000Pdr-Rh/1cUA9d-000Pdr-Rh.eml: OK
Jan 19 13:45:31 mail clamd[88591]: /var/spool/exim/scan/1cUADh-000PfP-M8/1cUADh-000PfP-M8.eml: OK
т.е пусто.
Указываю в конфигах только то что раскоменчено для экономии места и времени :-)
конфиг dovecot.conf
# Protocols we want to be serving.
protocols = imap pop3
listen = *
base_dir = /var/mail/dovecot/ ( со штатной директорией тоже была проблема, изменили директорию всё норм стало)
!include conf.d/*.conf
!include_try local.conf
dovecot-sql.conf
driver = mysql
connect = host=/tmp/mysql.sock dbname=test user=test password=blablabla
default_pass_scheme = MD5-CRYPT
user_query = SELECT '/var/mail/%d/%n' AS home, 'mailnull' AS uid, 'mailnull' AS gid FROM user WHERE username = '%n' and domain = '%d'
password_query = SELECT password,'/var/mail/%d/%n' AS userdb_home, 'mailnull' AS userdb_uid, 'mailnull' AS userdb_gid FROM user WHERE username = '%n' AND d$ AND domain = '%d'
iterate_query = SELECT username, domain AS user, domain FROM user
15-lda.conf
log_path = /var/log/dovecot-lda.log
info_log_path = /var/log/dovecot-lda.log
lda_mailbox_autocreate = yes
Заранее благодарен за любую помощь.
10-mail.conf
mail_location = maildir:/var/mail/%d/%n
namespace inbox {
location = maildir: /var/mail/%d/%n
inbox = yes
list = yes
subscriptions = yes
}
mail_uid = mailnull
mail_gid = mailnull
mail_privileged_group = mail
first_valid_uid = 26
first_valid_gid = 0
Права на директорию с почтой:
drwxrwxr-x 57 mailnull mailnull 1024 Dec 7 10:22 telefonet.ru (опасно не в целях эксперимента всё норм)
/etc/group.conf
mailnull:*:26:mail,mailnull
dovecot-lda.log
Jan 19 13:43:17 imap(testor@telefonet.ru): Debug: Effective uid=26, gid=26, home=/var/mail/telefonet.ru/testor
Jan 19 13:43:17 imap(testor@telefonet.ru): Debug: Home dir not found: /var/mail/telefonet.ru/testor
Jan 19 13:43:17 imap(testor@telefonet.ru): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir: /var/mail/telefonet.ru/testor
Jan 19 13:43:17 imap(testor@telefonet.ru): Debug: maildir++: root= /var/mail/telefonet.ru/testor, index=, indexpvt=, control=, inbox= /var/mail/telefonet.ru/testor, alt=
Jan 19 13:43:17 imap(testor@telefonet.ru): Debug: Namespace : /var/mail/telefonet.ru/testor doesn't exist yet, using default permissions
Jan 19 13:43:17 imap(testor@telefonet.ru): Debug: Namespace : Using permissions from /var/mail/telefonet.ru/testor: mode=0700 gid=default
Jan 19 13:43:17 imap(testor@telefonet.ru): Error: User initialization failed: Namespace '': mkdir( /var/mail/telefonet.ru/testor) in directory /var/mail/dovecot failed: Permission denied (euid=26(mailnull) egid=26(mailnull) missing +w perm: /var/mail/dovecot, dir owned by 0:0 mode=0755)
Jan 19 13:43:17 imap: Error: Invalid user settings. Refer to server log for more information.
messages.log
Jan 19 13:41:17 mail clamd[88591]: /var/spool/exim/scan/1cUA9d-000Pdr-Rh/1cUA9d-000Pdr-Rh.eml: OK
Jan 19 13:45:31 mail clamd[88591]: /var/spool/exim/scan/1cUADh-000PfP-M8/1cUADh-000PfP-M8.eml: OK
т.е пусто.
Указываю в конфигах только то что раскоменчено для экономии места и времени :-)
конфиг dovecot.conf
# Protocols we want to be serving.
protocols = imap pop3
listen = *
base_dir = /var/mail/dovecot/ ( со штатной директорией тоже была проблема, изменили директорию всё норм стало)
!include conf.d/*.conf
!include_try local.conf
dovecot-sql.conf
driver = mysql
connect = host=/tmp/mysql.sock dbname=test user=test password=blablabla
default_pass_scheme = MD5-CRYPT
user_query = SELECT '/var/mail/%d/%n' AS home, 'mailnull' AS uid, 'mailnull' AS gid FROM user WHERE username = '%n' and domain = '%d'
password_query = SELECT password,'/var/mail/%d/%n' AS userdb_home, 'mailnull' AS userdb_uid, 'mailnull' AS userdb_gid FROM user WHERE username = '%n' AND d$ AND domain = '%d'
iterate_query = SELECT username, domain AS user, domain FROM user
15-lda.conf
log_path = /var/log/dovecot-lda.log
info_log_path = /var/log/dovecot-lda.log
lda_mailbox_autocreate = yes
Заранее благодарен за любую помощь.
10-mail.conf
mail_location = maildir:/var/mail/%d/%n
namespace inbox {
location = maildir: /var/mail/%d/%n
inbox = yes
list = yes
subscriptions = yes
}
mail_uid = mailnull
mail_gid = mailnull
mail_privileged_group = mail
first_valid_uid = 26
first_valid_gid = 0