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