I’m trying a super basic config based upon https://wiki.dovecot.org/HowTo/PostfixDovecotLMTP but before I work on shipping mail through Postfix to DoveCot, I wanted to make sure IMAP is working first, but I can’t even get a basic login to so I thought I’d see if the gurus on the list might be able to point out I’m doing wrong. The documentation is pretty good, but there were some gaps I had to guess at and I’m presuming that’s where I went wrong. I’ve turned SELinux to permissive mode, for now.


Here’s the doveconf -n:


# 2.2.36 (1f10bfa63): /etc/dovecot/dovecot.conf

# OS: Linux 3.10.0-1062.12.1.el7.x86_64 x86_64 CentOS Linux release 7.7.1908 (Core)

# Hostname: imap

first_valid_uid = 1000

listen = 192.168.1.207

mail_gid = vmail

mail_home = /var/vmail/%d/%n

mail_location = sdbox:~/mail

mail_uid = vmail

mbox_write_locks = fcntl

namespace inbox {

inbox = yes

location =

mailbox Drafts {

special_use = \Drafts

}

mailbox Junk {

special_use = \Junk

}

mailbox Sent {

special_use = \Sent

}

mailbox "Sent Messages" {

special_use = \Sent

}

mailbox Trash {

special_use = \Trash

}

prefix =

separator = /

}

passdb {

args = scheme=PLAIN username_format=%u /etc/dovecot/users

driver = passwd-file

}

protocols = imap lmtp

service lmtp {

group = vmail

unix_listener /var/spool/postfix/private/dovecot-lmtp {

group = postfix

mode = 0600

user = postfix

}

user = vmail

}

ssl = no

ssl_cert = </etc/pki/dovecot/certs/dovecot.pem

ssl_key = # hidden, use -P to show it

userdb {

args = username_format=%u /etc/dovecot/users

driver = passwd-file

}


I wasn’t sure how to set rights on the users file:


[sawozny@imap var]$ cat /etc/dovecot/users

test@test.com:{plain}test

[sawozny@imap var]$ ls -la /etc/dovecot/users

-rw-r--r--. 1 root root 26 Jun 3 23:31 /etc/dovecot/users


Also, didn’t know what rights to set on the /var/vmail directoy so I did this:


drwxrwx---. 3 vmail vmail 4096 Jun 3 20:52 vmail


This directory is also empty except for the lost+fond directory that comes with a disk mount point. My understanding is that the mail home and maildir will manifest automagically on first login, but if I need to prime the pump, please let me know what I need to do.


For my test, I did:

[sawozny@imap var]$ telnet 192.168.1.207 143

Trying 192.168.1.207...

Connected to 192.168.1.207.

Escape character is '^]'.

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.

01 LOGIN test@test.com test

01 NO [UNAVAILABLE] Internal error occurred. Refer to server log for more information.

Connection closed by foreign host.


And the results in the /var/log/maillog file are:


Jun 3 23:35:34 imap dovecot: auth: Error: passwd-file /etc/dovecot/users: User test@test.com is missing userdb info

Jun 3 23:35:44 imap dovecot: auth: Error: passwd-file(test@test.com,192.168.1.207,<DBqafDan7ODAqAHP>): user not found from userdb

Jun 3 23:35:44 imap dovecot: imap: Error: Authenticated user not found from userdb, auth lookup id=843055105 (auth connected 0 msecs ago, handshake 0 msecs ago, request took 0 msecs, client-pid=12047 client-id=1)

Jun 3 23:35:44 imap dovecot: imap-login: Internal login failure (pid=12047 id=1) (internal failure, 1 successful auths): user=<test@test.com>, method=PLAIN, rip=192.168.1.207, lip=192.168.1.207, mpid=12049, secured, session=<DBqafDan7ODAqAHP>


I’m not sure where I’ve gone wrong. From my understanding of the documentation, all I need in the userdb is name and password. UID, GID and HOME are also indicated as required, but I set them at the system level, so why is the system telling me the user was not found? This definitely isn’t my first rodeo with Linux, but I know almost nothing about messaging so in that regard I’m a totally n00b and would really appreciate some guidance.


Thanks,


Scott