Hi Philipp
You can use exim to prepare the address as you wish: only the user name for pam users and the full address for virtual users.
Configure a new router to strip the domain part for pam users:
local_pam_users: debug_print = "R: strip domain for local pam users" driver = redirect check_local_user domains = @ : localhost : ${primary_hostname} data = ${local_part} redirect_router = local_user
I'm not 100% sure of the domains condition; it should restrict the router to your domain(s) where your pam users receive their email. The redirect_router designates the router which routes your local deliveries to your lmtp transport. Place the new router to run just before your "local_user" router.
Since your config works for your virtual users, you don't need to do anything in addition.
Regards, Adrian.
Am 25.12.13 08:16 schrieb Philipp Kolmann:
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@domain.com
The problem is the system user. If exim delivers the mail to the lmtp socket, the LMTPd can't find username@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@domain1.com and xx@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