[Dovecot] Using dovecot as LDA for postfix

/dev/rob0 rob0 at gmx.co.uk
Tue Oct 15 18:59:50 EEST 2013


On Mon, Oct 14, 2013 at 09:43:31AM -0700, Farzad Mahdikhani wrote:
> Here is my environment:
> Red Hat Enterprise Linux Server release 5.7 (Tikanga)
> postfix-2.9.1-1.rhel5
> dovecot 1.0.7

You used a third-party RPM or SRPM for Postfix, why not for Dovecot? 
Also, the latest in the Postfix 2.9 series is patchlevel 6 or so.

> I want to config a complete postfix-dovecot mail server. First I 
> configured postfix to use procmail, its default LDA and dovecot for

FWIW, procmail is NOT the default LDA for Postfix. Postfix has its 
own local(8) and [optional] virtual(8) LDAs. Procmail is very old and 
unmaintained (it makes Dovecot 1.x look recent!) Only old and well- 
established sites should be using procmail now. There are much better 
options for new sites in A.D. 2013.

> pop3 and imap. I didn't changed main.cf a lot, just myhostname and 
> a few other properties. I didn't set home_mailbox. About 
> dovecot.conf here is the output of dovecot -n :
>  
> # 1.0.7: /etc/dovecot.conf
> log_path: /var/log/dovecot.log
> protocols: imap pop3
> login_dir: /var/run/dovecot/login
> login_executable(default): /usr/libexec/dovecot/imap-login
> login_executable(imap): /usr/libexec/dovecot/imap-login
> login_executable(pop3): /usr/libexec/dovecot/pop3-login
> mail_debug: yes
> mail_executable(default): /usr/libexec/dovecot/imap
> mail_executable(imap): /usr/libexec/dovecot/imap
> mail_executable(pop3): /usr/libexec/dovecot/pop3
> mail_plugin_dir(default): /usr/lib64/dovecot/imap
> mail_plugin_dir(imap): /usr/lib64/dovecot/imap
> mail_plugin_dir(pop3): /usr/lib64/dovecot/pop3
> auth default:
>   mechanisms: plain login
>   passdb:
>     driver: pam
>   userdb:
>     driver: passwd
> 
> As you can see mail_location is not set. At this time everything 
> was OK and working. I was able to send email using SquirrelMail and 
> thunderbird. I got two users, user1 and user2, in my linux machine 
> and when I sent an email from user1 at software.com to 
> user2 at software.com the sent mail was saved in /home/user1/mail/Sent 
> and the received email was in /var/mail/user2. The log file for 
> dovecot had entries like this for user1 and user2:
> 
> dovecot: Oct 14 14:44:52 Info: IMAP(user1): maildir: couldn't find root dir
> dovecot: Oct 14 14:44:52 Info: IMAP(user1): mbox: root exists (/home/user1/mail)
> dovecot: Oct 14 14:44:52 Info: IMAP(user1): mbox: INBOX exists (/var/mail/user1)
> dovecot: Oct 14 14:44:52 Info: IMAP(user1): mbox: root=/home/user1/mail, index=/home/user1/mail, inbox=/var/mail/user1
> 
> At this point I tried to change the LDA from procmail to dovecot
> by the following settings:
> 
> I added/changed the following in the main.cf:
> 
> mailbox_command = /usr/libexec/dovecot/deliver

This is used for the local domain class. It's not relevant for other 
address classes.

> dovecot_destination_recipient_limit = 1
> virtual_mailbox_domains = software.com

This defines the virtual mailbox domain address class. This says that 
addresses at software.com are virtual mailbox, NOT local, addresses. If 
you're using passwd and PAM as userdb/passdb, this is not what you 
want.

> virtual_transport = dovecot

And this is the default transport to be used for virtual mailboxes.

> I added the following in the master.cf:
> 
> dovecot   unix  -       n       n       -       -       pipe
>   flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
> 
> But it didn't work. When I send email from from user2 to user1 the 
> sent email is correctly saved in /home/user2/mail/Sent but it seems 
> that user1 doesn't receive the incoming email. dovecot.log had 
> entries like the following:
> 
> dovecot: Oct 14 14:54:04 Info: imap-login: Login: user=<user1>, method=PLAIN, rip=::ffff:172.27.7.8, lip=::ffff:172.16.100.183, TLS

That's a system user login (local user in Postfix terms.)

> dovecot: Oct 14 14:54:04 Info: IMAP(user1): Effective uid=504, gid=504, home=/home/user1
> dovecot: Oct 14 14:54:04 Info: IMAP(user1): maildir: access(/home/user1/Maildir, rwx): failed: No such file or directory
> dovecot: Oct 14 14:54:04 Info: IMAP(user1): maildir: couldn't find root dir
> dovecot: Oct 14 14:54:04 Info: IMAP(user1): mbox: root exists (/home/user1/mail)
> dovecot: Oct 14 14:54:04 Info: IMAP(user1): mbox: INBOX exists (/var/mail/user1)
> dovecot: Oct 14 14:54:04 Info: IMAP(user1): mbox: root=/home/user1/mail, index=/home/user1/mail, inbox=/var/mail/user1
> 
> Setting home_mailbox = Maildir/ in main.cf and mail_location = 

The home_mailbox setting IS relevant to local domains.

> maildir:~/Maildir in dovecot.cf didn't help. I have been googling 
> and reading and testing for 4 or 5 days for this but there was no 
> chance. Now, I am stuck and any help would be really really 
> appreciated.

This is mostly a Postfix question, BTW, so I will point to to the 
Postfix documentation. Don't confuse your address classes:

    http://www.postfix.org/ADDRESS_CLASS_README.html
    http://www.postfix.org/VIRTUAL_README.html
-- 
  http://rob0.nodns4.us/ -- system administration and consulting
  Offlist GMX mail is seen only if "/dev/rob0" is in the Subject:


More information about the dovecot mailing list