Hi,
I'm trying to get dovecot working with postgres, I'm on Debian 10 and
have installed dovecot-pgsql from the Dovecot repo
(https://repo.dovecot.org/ce-2.3-latest/debian/....).
I have the following in my local.conf :
passdb sql {
? args = /etc/dovecot/local_sql_users.conf
}
And the following in the referenced file:
driver = pgsql
connect = host=localhost dbname=foobar user=bar password=foo
default_pass_scheme = ARGON2ID
password_query = select dovecot_username as user,password from
get_user('%u')
iterate_query = select dovecot_username as user from get_users()
So surely it should work ?
doveconf -n just to complete the picture ....
# 2.3.10 (0da0eff44): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.10 (bf8ef1c2)
# OS: Linux 4.19.0-9-amd64 x86_64 Debian 10.4 xfs
# Hostname: foobar.example.com
auth_verbose = yes
auth_verbose_passwords = sha1:7
doveadm_password = # hidden, use -P to show it
mail_location = maildir:/foobar/mail/%d/%n/Maildir
mail_plugins = " notify replication"
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character
vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy
include variables body enotify environment mailbox date index ihave duplicate
mime foreverypart extracttext
namespace inbox {
? inbox = yes
? location ? mailbox Drafts {
??? special_use = \Drafts
? }
? mailbox Junk {
??? special_use = \Junk
? }
? mailbox Sent {
??? special_use = \Sent
? }
? mailbox "Sent Messages" {
??? special_use = \Sent
? }
? mailbox Trash {
??? special_use = \Trash
? }
? prefix }
passdb {
? driver = pam
}
passdb {
? args = /etc/dovecot/local_sql_users.conf
? name = sql
}
plugin {
? mail_replica = tcps:standby.example.com:11867
? sieve = file:~/sieve;active=~/.dovecot.sieve
}
protocols = imap lmtp
replication_dsync_parameters = -1 -d -N -l 30 -U
service aggregator {
? fifo_listener replication-notify-fifo {
??? user = foobar
? }
? unix_listener replication-notify {
??? user = foobar
? }
}
service auth {
? unix_listener /var/spool/postfix/private/dovecot-auth {
??? group = postfix
??? mode = 0660
??? user = postfix
? }
? vsz_limit = 2 G
}
service doveadm {
? inet_listener {
??? port = 11867
??? ssl = yes
? }
}
service imap-login {
? process_min_avail = 5
? service_count = 1
}
service lmtp {
? process_min_avail = 5
? unix_listener /var/spool/postfix/private/dovecot-lmtp {
??? group = postfix
??? mode = 0660
??? user = postfix
? }
? user = foobar
}
service managesieve-login {
? inet_listener sieve {
??? port = 4190
? }
? inet_listener sieves {
??? address ??? port = 5190
??? ssl = yes
? }
}
service replicator {
? process_min_avail = 1
? unix_listener replicator-doveadm {
??? mode = 0600
??? user = foobar
? }
}
ssl = required
ssl_ca = </etc/foobar/ssl/example.com.chain
ssl_cert = </etc/foobar/ssl/example.com.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
ssl_min_protocol = TLSv1.2
ssl_prefer_server_ciphers = yes
userdb {
? driver = passwd
}
userdb {
? args = uid=foobar gid=foobar home=/foobar/mail/%d/%n
? driver = static
}
protocol lmtp {
? mail_plugins = sieve
? postmaster_address = foobar at example.com
}
protocol lda {
? deliver_log_format = msgid=%m: %$
? mail_plugins = sieve
? postmaster_address = postmaster
? quota_full_tempfail = yes
? rejection_reason = Your message to <%t> was automatically rejected:%n%r
}
protocol imap {
? mail_max_userip_connections = 20
}