this is obsolete doc -- see http://doc.nethence.com/ instead

Setting up Dovecot v2 for local users and Maildir 

on netbsd 7 

 

http://pbraun.nethence.com/unix/mail/postfix.html 

http://pbraun.nethence.com/unix/mail/dovecot.html 

 

Installation 

Make sure dovecot v2 is installed, 

wget --quiet -O - "$PKG_PATH" | grep dovecot

  pkg_add dovecot-2.2.18nb2 

pkg_info | grep dovecot
dovecot --version
cp /usr/pkg/share/examples/rc.d/dovecot /etc/rc.d/
cd /etc/
ln -s /usr/pkg/etc/dovecot

Note. dovecot and dovenull groups are created 

Note. dovecot and dovenull users are created 

 

Dovecot doesn't like time changes (http://wiki.dovecot.org/TimeMovedBackwards). You need the NTP daemon to slow down or accelerate the clock speed when updating the time. 

cd /etc/
cp ntp.conf ntp.conf.dist
echo ntpd=YES >> /etc/rc.conf
service ntpd start

 

Configuration 

Setup Dovecot without SSL first, 

cd /etc/dovecot/
dovecot -n > dovecot.conf.new
cp dovecot.conf dovecot.conf.dist
mkdir .trash/
mv * .trash/
mv .trash/mkcert.sh .
cp .trash/dovecot.conf.new dovecot.conf
vi dovecot.conf
disable_plaintext_auth = no
mail_location = maildir:~/Maildir
mail_privileged_group = mail
protocols = imap lmtp
#protocols = imaps lmtp
ssl = no
#ssl_cert_file = /chemin/vers/votre/certificat/ssl

#ssl_key_file = /chemin/vers/votre/clé/ssl 

Ref. http://wiki.dovecot.org/BasicConfiguration 

 

We are using ~/Maildir/ and not /var/mail, but just in case. On netbsd, this is not needed as the /var/mail/ folder has a sticky bit, hence Dovecot can write its lock file in it. But on other systems this might be useful, 

cd /var/
ls -al mail/
chgrp -R mail mail/

and, 

cd /etc/dovecot/conf.d/
vi 10-mail.conf
mail_privileged_group = mail

 

Review the configuration, 

dovecot -n

 

Use procmail to convert mbox to Maildir 

Setup procmail system-wide, 

echo $PKG_PATH
pkg_add procmail
cd /etc/
ln -s /usr/pkg/etc/procmailrc
vi procmailrc
ORGMAIL=${HOME}/Maildir/
DEFAULT=${ORGMAIL}

 

Reprocess old mboxes, 

cd /var/mail/
ls -l
find ~mailuser/Maildir/

  procmail -Y -d mailuser < mailuser && rm -f mailuser 

find ~mailuser/Maildir/

Note. not sure -Y is mandatory, but it has proven to be very useful to me on other occasions. 

 

Ready to go 

Increase the fd limit in the init script, 

vi /etc/rc.d/dovecot
768 --> 1000
service dovecot restart

 

Enable the daemon, 

echo dovecot=YES >> /etc/rc.conf
service dovecot start

 

And make sure it is running, 

ps aux | grep dove
netstat -an -f inet,inet6 | grep 143

 

Eventually test IMAP auth by telnet if SSL hasn't been enabled, 

tail -F /var/log/maillog
telnet 127.0.0.1 143

  a login user wrong_pass 

  a login user good_pass 

a logout

 

Maintenance 

Clean-up subscriptions, 

cd /var/spool/virtual/example.net/user.imap
for dir in `find . -type d -name .imap`; do rm -rf $dir; done

 

Troubbleshooting 

If you get this warning when trying to start the daemon, 

Warning: fd limit (ulimit -n) is lower than required under max. load (768 < 1000), because of default_client_limit

==> increase the limit in the init script, see above. 

 

Similar case (maybe dovecot 1 msg), 

Warning: fd limit 128 is lower than what Dovecot can use under full load (more than 640). Either grow the limit or change login_max_processes_count and max_mail_processes settings

==> increase the amount of file descriptors than can be opened at once in the init script (ulimit -n 1024). 

 

If you get those errors, 

Error: User initialization failed: Namespace '': Mail storage autodetection failed with home=/home/mailuser
Error: Invalid user settings. Refer to server log for more information.

==> make sure the smtp delivers into the right place and fix mail_location. 

 

References -- General 

Préparation et configuration de dovecot: http://kevin.denis.free.fr/vmail/part4.html 

How to configure postfix + dovecot to copy and forward?: http://serverfault.com/questions/196818/how-to-configure-postfix-dovecot-to-copy-and-forward 

==> http://neranjara.org/article/title/How_to_configure_PostFix_and_Dovecot_for_Virtual_Users_with_out_a_Database_ (dead link) 

Dovecot: https://help.ubuntu.com/community/Dovecot 

Running Dovecot: http://wiki2.dovecot.org/RunningDovecot 

 

References -- Local and Virtual Users 

Basic Configuration: http://wiki2.dovecot.org/BasicConfiguration 

Mail location: http://wiki2.dovecot.org/MailLocation 

Maildir configuration: http://wiki2.dovecot.org/MailLocation/Maildir 

Virtual Users: http://wiki2.dovecot.org/VirtualUsers 

User Databases: http://wiki2.dovecot.org/UserDatabase 

 

References -- Upgrading 

Upgrading Dovecot v1.0 to v1.1: http://wiki.dovecot.org/Upgrading/1.1 

Note. Dovecot 1.0 didn't need username_format=%n. 

Upgrading Dovecot v1.1 to v1.2: http://wiki.dovecot.org/Upgrading/1.2 

Note. Dovecot 1.2 had ssl_disable=yes instead of ssl=no. 

Note. For Dovecot 1.2 login_greeting_capability is enabled by default. 

Upgrading Dovecot v1.2 to v2.0: http://wiki2.dovecot.org/Upgrading/2.0