Dovecot 2
Installer Dovecot 2
# cd /usr/ports/mail/dovecot2 # make config![]()
Verifier que les options suivantes soient sélectionnées : MYSQL, SSL # make install clean && rehash # echo 'dovecot_enable="YES"' >> /etc/rc.conf
Créer un utilisateur virtuel pour la gestion des boites aux lettres
# pw groupadd vmail -g 5000 # pw useradd vmail -u 5000 -g vmail -s /usr/sbin/nologin -d /nonexistent -c "Virtual Mail Owner" # mkdir /mail # chown vmail:vmail /mail
Ajouter un champ à la table mailbox de la base de donnée de postfix.
# mysql -u root -p'motdepasse'mysql> use postfix; mysql> ALTER TABLE mailbox ADD allow_nets VARCHAR(150); mysql> exit;
Configuration
La configuration de Dovecot est scindée à travers plusieurs fichiers.Copier les modèles d'exemples de configuration du système vers le répertoire hadoc. Editer les fichiers suivants :
Les lignes illustrées ci-dessous representent les modifications à effectuer.
# cp -RL /usr/local/share/doc/dovecot/example-config/ /usr/local/etc/dovecot
/usr/local/etc/dovecot/conf.d/10-auth.confdisable_plaintext_auth = no auth_realms = example1.com example2.fr auth_default_realm = example1.com auth_mechanisms = plain login # !include auth-system.conf.ext !include auth-sql.conf.ext
/usr/local/etc/dovecot/conf.d/auth-sql.conf.extpassdb { driver = sql } #userdb { # driver = prefetch #} userdb { driver = sql args = /usr/local/etc/dovecot/dovecot-sql.conf.ext }
/usr/local/etc/dovecot/conf.d/10-mail.confmail_location =maildir:~/ mail_uid = 5000 mail_gid = 5000 mail_temp_dir = /var/tmp first_valid_uid = 5000 first_valid_gid = 5000 mail_plugins = quota expire mail_log notify
/usr/local/etc/dovecot/conf.d/10-master.confunix_listener auth-userdb { mode = 0600 user = vmail group = vmail } # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix }
/usr/local/etc/dovecot/conf.d/15-lda.confpostmaster_address = Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. hostname = mx.example.com quota_full_tempfail = no sendmail_path = /usr/local/sbin/sendmail lda_mailbox_autocreate = yes
/usr/local/etc/dovecot/conf.d/10-ssl.conf# ssl_cert= # ssl_key= ssl = no
/usr/local/etc/dovecot/conf.d/20-imap.confmail_max_userip_connections = 5 mail_plugins = $mail_plugins imap_quota imap_zlib
/usr/local/etc/dovecot/conf.d/20-pop3.confmail_max_userip_connections = 5 pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
Supprimer tout le contenu du fichier 90-quota.conf et le remplacer avec ceci.
/usr/local/etc/dovecot/conf.d/90-quota.confplugin { quota = maildir:User quota quota_rule = *:storage=1G quota_rule2 = Trash:storage=+30% quota_rule3 = Sent:storage=+30% quota_warning = storage=90%% quota-warning 90 %u quota_warning2 = storage=75%% quota-warning 75 %u # What message to send to IMAP clients (and SMTP senders) when quota is exceeded? quota_exceeded_message = Votre boite aux lettres est pleine, Veuillez reessayer ulterieurement. } service quota-warning { executable = script /usr/local/bin/quota-warning.sh user = vmail unix_listener quota-warning { user = vmail } }
/usr/local/etc/dovecot/conf.d/90-plugin.confplugin { expire = Trash expire2 = Trash/* expire3 = Spam mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size #zlib_save_level = 6 # 1..9 #zlib_save = gz # or bz2 }
/usr/local/etc/dovecot/conf.d/auth-system.conf.ext#passdb { # driver = pam # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=] # [cache_key=] [] #args = dovecot #}
/usr/local/etc/dovecot/dovecot-dict-expire.conf.extconnect = host=127.0.0.1 dbname=postfix user=utilisateur_postfix password=mot_de_passe_postfix map { pattern = shared/expire/$user/$mailbox table = expires value_field = expire_stamp fields { username = $user mailbox = $mailbox } }
Création du fichier quota-warnig.sh
/usr/local/bin/quota-warning.sh#!/bin/sh PERCENT=$1 USER=$2 cat << EOF | /usr/local/libexec/dovecot/dovecot-lda -d $USER -o "plugin/quota=maildir:User quota:noenforcing" From: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. Subject: Avertissement de limtite de quota Votre boite aux lettres a atteind $PERCENT% de sa taille. Vous devriez supprimer quelques messages du serveur. EOF
Rendre le script executable
# chmod +x /usr/local/bin/quota-warning.sh
Creer le fichier de configuration dovecot-sql.conf.ext
/usr/local/etc/dovecot/dovecot-sql.conf.extdriver = mysql connect = host=127.0.0.1 dbname=postfix user=utilisateur_postfix password=mot_de_passe_postfix default_pass_scheme = MD5-CRYPT user_query = SELECT CONCAT('/mail/', maildir) AS home, 'maildir:~/' as mail, '5000' AS uid, '5000' AS gid,\ concat('*:bytes=', quota) AS quota_rule\ FROM mailbox WHERE username='%u' AND domain='%d' AND active=1 password_query = SELECT password,CONCAT('/mail/', maildir) AS userdb_home,\ '5000' AS userdb_uid, '5000' AS userdb_gid, allow_nets,\ concat('*:bytes=', quota) AS userdb_quota_rule\ FROM mailbox WHERE username='%u' AND domain='%d' AND active=1