I really want to try and get this plus addressing working correctly with Dovecot and Postfix. After doing some reading I think I am going to change my Postfix setup from mailbox_command to mailbox_transport. I have a few questions to make sure I am thinking correctly. All of my users are system users. Their mail is delivered directly to their "/home/<user>/Maildir" directory. Everything works great and I have no problems. Here is what I am thinking of doing. 1. Create a new vmail user and group. 2. Have all mail delivered for each user to the "/home/vmail/<user>/" directory. All mail will be owned by vmail, but that is okay since Dovecot is the only thing touching the mail files anyway. 3. Change the mail_location setting in dovecot.conf to "mail_location = /home/vmail/%u 4. Uncomment the auth_socket_path = /var/run/dovecot/auth-master setting in dovecot.conf 5. Switch Postfix's main.cf to use "mailbox_transport = dovecot" and put the following line in master.cf: 1. dovecot unix - n n - - pipe flags=DR user=vmail:vmail argv=/usr/local/libexec/dovecot/deliver -f ${sender} -d ${recipient} -n -m ${extension} 6. Copy the current users mail to the new vmail location. What is the best way to copy it preserving date and time stamps on the mail? Did I cover all of the steps are am I missing something? Here is a copy of my current dovecot -n output. Thanks for any help you can offer me. # 1.2.rc3: /usr/local/etc/dovecot.conf # OS: Linux 2.6.29-1-amd64 x86_64 Debian squeeze/sid base_dir: /var/run/dovecot/ protocols: imap imaps pop3 pop3s ssl_cert_file: /etc/ssl/certs/ssl.crt ssl_key_file: /etc/ssl/private/ssl.key ssl_cipher_list: ALL:!LOW:!SSLv2 disable_plaintext_auth: no login_dir: /var/run/dovecot//login login_executable(default): /usr/local/libexec/dovecot/imap-login login_executable(imap): /usr/local/libexec/dovecot/imap-login login_executable(pop3): /usr/local/libexec/dovecot/pop3-login mail_location: maildir:~/Maildir mail_executable(default): /usr/local/libexec/dovecot/imap mail_executable(imap): /usr/local/libexec/dovecot/imap mail_executable(pop3): /usr/local/libexec/dovecot/pop3 mail_plugin_dir(default): /usr/local/lib/dovecot/imap mail_plugin_dir(imap): /usr/local/lib/dovecot/imap mail_plugin_dir(pop3): /usr/local/lib/dovecot/pop3 auth default: mechanisms: plain login passdb: driver: pam userdb: driver: passwd plugin: sieve: sieve
Looks about right... I have a very similar setup, but i authenticate to Active Directory via LDAP and it works very good. If you have or may get more domains i would set up mail_location to something like this: /home/vmail/%d/%u that way you are ready for growth and everything is kept organized by domains. Just a thought. On Apr 17, 2009, at 10:14 AM, Jeff Grossman wrote:> I really want to try and get this plus addressing working correctly > with Dovecot and Postfix. After doing some reading I think I am > going to change my Postfix setup from mailbox_command to > mailbox_transport. I have a few questions to make sure I am > thinking correctly. All of my users are system users. Their mail > is delivered directly to their "/home/<user>/Maildir" directory. > Everything works great and I have no problems. Here is what I am > thinking of doing. > > 1. Create a new vmail user and group. > 2. Have all mail delivered for each user to the "/home/vmail/ > <user>/" > directory. All mail will be owned by vmail, but that is okay > since Dovecot is the only thing touching the mail files anyway. > 3. Change the mail_location setting in dovecot.conf to > "mail_location > = /home/vmail/%u > 4. Uncomment the auth_socket_path = /var/run/dovecot/auth-master > setting in dovecot.conf > 5. Switch Postfix's main.cf to use "mailbox_transport = dovecot" and > put the following line in master.cf: > 1. dovecot unix - n n - - pipe > flags=DR user=vmail:vmail > argv=/usr/local/libexec/dovecot/deliver -f ${sender} -d > ${recipient} -n -m ${extension} > 6. Copy the current users mail to the new vmail location. What is > the best way to copy it preserving date and time stamps on the > mail? > > Did I cover all of the steps are am I missing something? Here is a > copy of my current dovecot -n output. Thanks for any help you can > offer me. > > > # 1.2.rc3: /usr/local/etc/dovecot.conf > # OS: Linux 2.6.29-1-amd64 x86_64 Debian squeeze/sid > base_dir: /var/run/dovecot/ > protocols: imap imaps pop3 pop3s > ssl_cert_file: /etc/ssl/certs/ssl.crt > ssl_key_file: /etc/ssl/private/ssl.key > ssl_cipher_list: ALL:!LOW:!SSLv2 > disable_plaintext_auth: no > login_dir: /var/run/dovecot//login > login_executable(default): /usr/local/libexec/dovecot/imap-login > login_executable(imap): /usr/local/libexec/dovecot/imap-login > login_executable(pop3): /usr/local/libexec/dovecot/pop3-login > mail_location: maildir:~/Maildir > mail_executable(default): /usr/local/libexec/dovecot/imap > mail_executable(imap): /usr/local/libexec/dovecot/imap > mail_executable(pop3): /usr/local/libexec/dovecot/pop3 > mail_plugin_dir(default): /usr/local/lib/dovecot/imap > mail_plugin_dir(imap): /usr/local/lib/dovecot/imap > mail_plugin_dir(pop3): /usr/local/lib/dovecot/pop3 > auth default: > mechanisms: plain login > passdb: > driver: pam > userdb: > driver: passwd > plugin: > sieve: sieve
On Apr 17, 2009, at 11:14 AM, Jeff Grossman wrote:> 2. Have all mail delivered for each user to the "/home/vmail/<user>/" > directory. All mail will be owned by vmail, but that is okay > since Dovecot is the only thing touching the mail files anyway...> 6. Copy the current users mail to the new vmail location. What is > the best way to copy it preserving date and time stamps on the > mail?cp -a> userdb: > driver: passwdYou'll probably want to use userdb static now. Or if deliver needs to verify that the user exists, use something like: userdb passwd { args = uid=vmail gid=vmail home=/home/vmail/user/ }
On 4/17/2009 8:14 AM, Jeff Grossman wrote:> I really want to try and get this plus addressing working correctly > with Dovecot and Postfix. After doing some reading I think I am going > to change my Postfix setup from mailbox_command to mailbox_transport. > I have a few questions to make sure I am thinking correctly. All of > my users are system users. Their mail is delivered directly to their > "/home/<user>/Maildir" directory. Everything works great and I have > no problems. Here is what I am thinking of doing. > > 1. Create a new vmail user and group. > 2. Have all mail delivered for each user to the "/home/vmail/<user>/" > directory. All mail will be owned by vmail, but that is okay > since Dovecot is the only thing touching the mail files anyway. > 3. Change the mail_location setting in dovecot.conf to "mail_location > = /home/vmail/%u > 4. Uncomment the auth_socket_path = /var/run/dovecot/auth-master > setting in dovecot.conf > 5. Switch Postfix's main.cf to use "mailbox_transport = dovecot" and > put the following line in master.cf: > 1. dovecot unix - n n - - pipe > flags=DR user=vmail:vmail > argv=/usr/local/libexec/dovecot/deliver -f ${sender} -d > ${recipient} -n -m ${extension} > 6. Copy the current users mail to the new vmail location. What is > the best way to copy it preserving date and time stamps on the mail? > > Did I cover all of the steps are am I missing something? Here is a > copy of my current dovecot -n output. Thanks for any help you can > offer me.Okay, I made the change to using mailbox_transport instead of mailbox_command in Postfix. I followed the above steps only having to change one thing. Line 5.1 was wrong. I needed it to say "-d ${user}" instead of recipient. It was looking for user at domain instead of just user which is was exists in my userdb file. I decided against putting everything in "/home/vmail/domain/user" because when I would log in via IMAP it didn't know my domain name. I am assuming that is once again because my userdb only has user names and not domains. Just I just went with "/home/vmail/user" and it is working. I don't think I will be using more than one domain, so it should be fine. Thanks for everybody's help with this. Rather painless. The only problem I had was with the user name but I got it resolved. Jeff