Simple yet functional dovecot+postfix

This commit is contained in:
Pierre Jaury
2016-02-17 22:56:40 +01:00
parent 508c741ffa
commit 47272df96b
24 changed files with 195 additions and 278 deletions

View File

@@ -1,13 +0,0 @@
auth_mechanisms = plain login cram-md5
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
#!include auth-system.conf.ext

View File

@@ -1,6 +0,0 @@
# mailbox configuration
first_valid_gid = 70000
first_valid_uid = 70000
mail_access_groups = mail
mail_location = maildir:~/Maildir

View File

@@ -1,43 +0,0 @@
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
}
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
user = postfix
group = postfix
mode = 0600
}
}
service auth {
user = doveauth
unix_listener auth-userdb {
}
unix_listener /var/spool/postfix/private/dovecot-auth {
user = postfix
group = postfix
mode = 0600
}
}
service auth-worker {
unix_listener auth-worker {
user = mail
group = $default_internal_user
mode = 0660
}
user = mail
}
service dict {
unix_listener dict {
group = mail
mode = 0660
}
}

View File

@@ -1,4 +0,0 @@
# SSL/TLS support
ssl = yes
ssl_cert = </etc/ssl/cert.pem
ssl_key = </etc/ssl/key.pem

View File

@@ -1,6 +0,0 @@
# delivery configuration
postmaster_address = admin@domain.tld
recipient_delimiter = +
protocol lda {
}

View File

@@ -1,3 +0,0 @@
# mail browsing
protocol imap {
}

View File

@@ -1,3 +0,0 @@
# mail delivery
protocol lmtp {
}

View File

@@ -1,18 +1,10 @@
driver = pgsql
connect = host=localhost dbname=mailsys user=dovecot password=$Dovecot_PASS
driver = sqlite
connect = /data/freeposte.db
# Return the user hashed password
password_query = \
SELECT userid AS "user", password FROM dovecotpassword('%Ln', '%Ld') WHERE %Ls
SELECT password FROM users, domains WHERE username = '%n' AND domain = '%d'
# uncomment this user_query if you want to use the quota plugin
#user_query = \
# SELECT home, uid, gid, mail, quota_rule FROM dovecotquotauser('%Ln', '%Ld')
# otherwise uncomment the following user_query
#user_query = SELECT home, uid, gid, mail FROM dovecotuser('%Ln', '%Ld')
iterate_query = \
SELECT local_part AS username, domain_name.domainname AS domain \
FROM users \
LEFT JOIN domain_data USING (gid) \
LEFT JOIN domain_name USING (gid)
# Mostly get the user quota
user_query = \
SELECT '*:bytes=' || quota_bytes AS quota_rule FROM users WHERE username = '%n' AND domain = '%d'

View File

@@ -1,2 +1,123 @@
# handled protocols
protocols = imap lmtp
###############
# General
###############
protocols = imap lmtp sieve
postmaster_address = %{env:POSTMASTER_ADDRESS}
hostname = %{env:MAIL_HOSTNAME}
###############
# Mailboxes
###############
first_valid_gid = 8
first_valid_uid = 8
mail_location = maildir:/data/mail/%u
mail_home = /data/mail/%u
mail_uid = mail
mail_gid = mail
mail_privileged_group = mail
mail_access_groups = mail
###############
# TLS
###############
ssl = yes
ssl_cert = </data/ssl/cert.pem
ssl_key = </data/ssl/key.pem
###############
# Authentication
###############
auth_mechanisms = plain login cram-md5
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
service auth {
user = dovecot
unix_listener auth-userdb {
}
unix_listener /var/spool/postfix/private/dovecot-auth {
user = postfix
group = postfix
mode = 0600
}
}
service auth-worker {
unix_listener auth-worker {
user = mail
group = $default_internal_user
mode = 0660
}
user = mail
}
###############
# IMAP
###############
protocol imap {
}
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
}
}
###############
# Delivery
###############
protocol lmtp {
}
protocol lda {
recipient_delimiter = +
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
user = postfix
group = postfix
mode = 0600
}
}
service dict {
unix_listener dict {
group = mail
mode = 0660
}
}
###############
# Filtering
###############
service managesieve-login {
inet_listener sieve {
port = 4190
}
inet_listener sieve_deprecated {
port = 2000
}
}
plugin {
sieve = ~/.sieve
sieve_dir = ~/sieve
sieve_before = /var/lib/dovecot/sieve/before.sieve
sieve_default = /var/lib/dovecot/sieve/default.sieve
sieve_after = /var/lib/dovecot/sieve/after.sieve
}