login me@mymail.net*theboss thebossespwd
this is a great piece of software, but it has some frustrating issues.
i have included my two configurations below, just FYI.
the one (older) system is 1.0rc7 on mandriva 2007.0 and postfix 2.3.3 and amavisd and spamassassin and using a maildir configuration
the newer system is 1.0.5 (soon to be 7) on mandriva 2008.0 and postfix 2.4.5 amavisd and spamassassin and using a maildir configuration
first, i followed the instructions in this document http://wiki.dovecot.org/Authentication/MasterUsers to the letter and it works for neither the old server nor the new. specifically i was using the first example configuration. all i ever got was:
Connected to mail.mailserver.com Escape character is '^]'.
- OK [CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS STARTTLS AUTH=LOGIN AUTH=PLAIN AUTH=DIGEST-MD5] Dovecot ready. login him@mailserver.com*theboss thebossespwd login BAD Error in IMAP command received by server.
and the auth_debug information was completely useless. if someone goes to the trouble of writing great examples they really should test to make sure they actually work.
secondly: this configuration on the old server (1.0rc7) works fine: ## Dovecot 1.0 configuration file base_dir = /var/lib/dovecot protocols = imap pop3 imaps log_path = /var/log/dovecot/error.log info_log_path = /var/log/dovecot/info.log first_valid_uid = 60000 last_valid_uid = 60000 first_valid_gid=15 last_valid_gid=15 default_mail_env = maildir:/var/spool/mail/%d/%u mailbox_check_interval = 60 maildir_copy_with_hardlinks = yes mbox_locks = fcntl umask = 0077 auth default { mechanisms = plain digest-md5 user = dovecot passdb pgsql { /etc/dovecot/dovecot-pgsql.conf } userdb pgsql { /etc/dovecot/dovecot-pgsql.conf }
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0660
user = postfix
group = mail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = mail
}
}
}
but the same configuration on the newer version 1.0.5 does not work, the problem being in mail location (note changed from default_mail_location to mail_location). so i had to make a number of changes...
## Dovecot configuration file base_dir = /var/lib/dovecot/ protocols = imap pop3 imaps disable_plaintext_auth = no log_path = /var/log/dovecot/error.log info_log_path = /var/log/dovecot/info.log ssl_cert_file = /etc/pki/tls/certs/dovecot.pem ssl_key_file = /etc/pki/tls/private/dovecot.pem login_dir = /var/lib/dovecot/login mail_location = maildir:/var/spool/mail/%d/%n: namespace private { prefix = location = maildir:/var/spool/mail/%d/%n inbox = yes } mail_extra_groups = mail first_valid_uid = 60000 last_valid_uid = 60000 first_valid_gid=15 last_valid_gid=15 maildir_copy_with_hardlinks = yes maildir_copy_preserve_filename = yes mbox_read_locks = fcntl mbox_write_locks = fcntl protocol imap { login_greeting_capability = yes } protocol pop3 { pop3_uidl_format = %08Xu%08Xv pop3_client_workarounds = outlook-no-nuls oe-ns-eoh } protocol lda { postmaster_address = postmaster@example.com } auth default { mechanisms = login plain digest-md5 passdb sql { args = /etc/postfix/mysql/dovecot.conf } userdb sql { args = /etc/postfix/mysql/dovecot.conf }
socket listen { master { path = /var/lib/dovecot/auth-master mode = 0660 user = nobody group = mail }
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = mail
}
} }
dict { }
plugin { }
or from the dovecot -n command:
# 1.0.5: /etc/dovecot.conf base_dir: /var/lib/dovecot/ log_path: /var/log/dovecot/error.log info_log_path: /var/log/dovecot/info.log protocols: imap pop3 imaps ssl_cert_file: /etc/pki/tls/certs/dovecot.pem ssl_key_file: /etc/pki/tls/private/dovecot.pem disable_plaintext_auth: no login_dir: /var/lib/dovecot/login login_executable(default): /usr/lib64/dovecot/imap-login login_executable(imap): /usr/lib64/dovecot/imap-login login_executable(pop3): /usr/lib64/dovecot/pop3-login login_greeting_capability(default): yes login_greeting_capability(imap): yes login_greeting_capability(pop3): no first_valid_uid: 60000 last_valid_uid: 60000 first_valid_gid: 15 last_valid_gid: 15 mail_extra_groups: mail mail_location: maildir:/var/spool/mail/%d/%n: maildir_copy_with_hardlinks: yes maildir_copy_preserve_filename: yes mbox_write_locks: fcntl mail_executable(default): /usr/lib64/dovecot/imap mail_executable(imap): /usr/lib64/dovecot/imap mail_executable(pop3): /usr/lib64/dovecot/pop3 mail_plugin_dir(default): /usr/share/dovecot//imap mail_plugin_dir(imap): /usr/share/dovecot//imap mail_plugin_dir(pop3): /usr/share/dovecot//pop3 pop3_uidl_format(default): pop3_uidl_format(imap): pop3_uidl_format(pop3): %08Xu%08Xv pop3_client_workarounds(default): pop3_client_workarounds(imap): pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh namespace: type: private location: maildir:/var/spool/mail/%d/%n inbox: yes auth default: mechanisms: login plain digest-md5 passdb: driver: sql args: /etc/postfix/mysql/dovecot.conf userdb: driver: sql args: /etc/postfix/mysql/dovecot.conf socket: type: listen client: path: /var/spool/postfix/private/auth mode: 432 user: postfix group: mail master: path: /var/lib/dovecot/auth-master mode: 432 user: nobody group: mail
what i found was that i HAD to add a namespace in order to be able to define my maildir location. that was ok, /*except */that the mail_location value is no longer being used for the pop3 server mail location. so i could pick up mail using IMAP no problem, but POP wasn't working. after a number of hours i modified my SQL script with 'CONCAT(path, maildir)' so that the 'mail' path is returned complete from the sql statement:
in my initial SQL statement, works on the old server and the new version 1.0.5 IMAP as:
user_query = SELECT maildir AS mail, 60000 AS uid, 15 AS gid FROM mailbox WHERE username = '%u' AND active='1'
but in order to get the POP3 version working i had to change it thus:
user_query = SELECT CONCAT('/var/spool/mail/', maildir) AS mail, 65534 AS uid, 12 AS gid FROM mailbox WHERE username = '%u' AND active='1'
one would have expected changing the SQL statement to this new format would have resulted in a location for the IMAP server now being constructed as:
/var/spool/mail/var/spool/mail/domain/user
but that did not happen. they both (POP & IMAP) now can find the mail and folders.
like i said, thanks very much for writing this s/ware. it is great...but needs some tweaking.
thanks for listening