[Dovecot] LMTP with virtual and system users
Philipp Kolmann
kolmann at zid.tuwien.ac.at
Wed Dec 25 09:16:56 EET 2013
Hi,
I have a mailsystem where i have some local users with shell access and
full home dirs which receive mail and also several SQL virtual users
only for mail.
With the virtual users, everything works fine. Mail is delivered via
LMTP and also sieve works :)
The SQL Lookup knows what to do with username at domain.com
The problem is the system user. If exim delivers the mail to the lmtp
socket, the LMTPd can't find username at local.host
I would be able to specify the global auth_username_format=%n but then
my SQL queries break and I like the possibility to have xx at domain1.com
and xx at domain2.com routed to two different accounts.
As I have seen in the source, I can't specify username_format=%n in the
passdb { driver = pam } backend. Do you have any suggestion how to
solve this issue?
thanks
Philipp
-------------- next part --------------
# 2.1.7: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-4-686-pae i686 Debian 7.3
auth_debug = yes
auth_verbose = yes
first_valid_uid = 100
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
mail_debug = yes
mail_location = maildir:~/Maildir
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 ihave
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 {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
passdb {
driver = pam
}
plugin {
mail_log_fields = uid box msgid size from subject flags
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
}
postmaster_address = postmaster at rudolfina.at
protocols = " imap lmtp sieve"
service auth {
unix_listener auth-client {
group = Debian-exim
mode = 0660
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
process_min_avail = 0
service_count = 1
vsz_limit = 64 M
}
ssl_cert = </etc/exim4/exim.crt
ssl_key = </etc/exim4/exim.key
userdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
userdb {
driver = passwd
}
protocol lmtp {
mail_plugins = " quota sieve"
}
protocol lda {
mail_plugins = " sieve"
}
protocol imap {
mail_plugins = " quota"
}
protocol sieve {
mail_max_userip_connections = 10
managesieve_implementation_string = Dovecot Pigeonhole
managesieve_logout_format = bytes=%i/%o
managesieve_max_compile_errors = 5
managesieve_max_line_length = 65536
}
-------------- next part --------------
user_query = \
SELECT concat('maildir:/var/spool/virtual_mail/', mailbox,'/Maildir/') as mail, \
concat('/var/spool/virtual_mail/', mailbox,'/') as home, \
100 as uid, 102 as gid \
FROM email \
WHERE mailbox = '%u'
password_query = \
SELECT mailbox as user, \
boxpass as password \
FROM email \
WHERE mailbox = '%u'
More information about the dovecot
mailing list