# Modifs locales à Dovecot. # En cas de doute, doc de ref : # https://doc.dovecot.org/ # https://workaround.org/ispmail-trixie/dovecot/ # Équivalent 10-mail.conf. Boites mails gérés à /var/vmail/domain/user. #### mail_driver = maildir mail_home = /var/vmail/%{user | domain}/%{user | username} mail_path = ~/Maildir mail_uid = vmail mail_gid = vmail mail_inbox_path = ~/Maildir/ # Permettre à Postfix d'utiliser Dovecot pour l'authentification #### service auth { unix_listener /var/spool/postfix/private/dovecot-auth { mode = 0660 user = postfix group = postfix } } # Connexion à la BDD #### sql_driver = mysql mysql /var/run/mysqld/mysqld.sock { user = postfixadmin ## Todo à changer ;) password = 'HO LE BEAU MOT DE PASSE' dbname = postfixadmin host = 127.0.0.1 } userdb sql { query = SELECT username AS user, \ CONCAT('*:bytes=', quota 'M') AS quota_rule \ FROM mailbox WHERE username = '%{user}' AND active = 1 iterate_query = SELECT username AS user FROM mailbox WHERE active = 1 } passdb sql { # La requête doit retourner le champ 'password' query = SELECT password FROM mailbox WHERE username = '%{user}' AND active = 1 } # SSL (10-ssl.conf) #### ssl = required ssl_server { ## Todo à changer ;) cert_file = /etc/letsencrypt/live/poste.example.org/fullchain.pem key_file = /etc/letsencrypt/live/poste.example.org/privkey.pem } ssl_min_protocol = TLSv1.2 ssl_cipher_list = HIGH:!eNULL:!LOW:!MEDIUM:!EXP:!RC4:!3DES:!MD5:!SHA1:!SHA256:!SHA384:!PSK:!kRSA:!SRP:-DH:+ECDH # Plugins #### mail_plugins = quota zlib quota_clone protocol imap { mail_plugins = $mail_plugins imap_zlib imap_quota imap_sieve } # Pour utiliser lmtp, plus robuste que LDA dans la délivrance des mails # LMTP gère la réception et la livraison des e-mails dans les boîtes aux lettres. #### service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } } protocol lmtp { auth_username_format = mail_plugins = $mail_plugins sieve } # SIEVE #### service managesieve-login { # Listen only on localhost inet_listener sieve { listen= 127.0.0.1 port = 4190 } # Disable the deprecated listener inet_listener sieve_deprecated { port = 0 } ## Limite les fuites mémoires tout en laissant plusieurs processus s'éxécuter quand même restart_request_count = 50 ## Garde un processus en attente (limite la latence) process_min_avail = 1 } # Quota #### ## TODO : Vérifier que "quota2_before_insert" n'existe plus sur la base postfixadmin quota "User quota" { driver = count } dict_server { dict mysql_quota { driver = sql sql_driver = mysql dict_map priv/quota/messages { sql_table = quota2 username_field = username value_field messages { } } dict_map priv/quota/storage { sql_table = quota2 username_field = username value_field bytes { } } } } quota_clone { dict proxy { name = mysql_quota } } # Alias avec joker #### recipient_delimiter = .