Hi Adrian,
thanks for your reply. I have also thought in this direction already but I didn't want to have lda SUID root...
I saw that the Passwd-file passdb supports username_format as argument. Would it be possible to add this feature also to the LMTP passdb driver?
thanks Philipp
On 01/01/14 18:25, Adrian Zaugg wrote:
Hi Philipp
You are completely right, the proposed solution doesn't work. It seems exim always qualifies an address without a domain, I believe this is because LMTP requiers to get only qualified addresses (LMTP is based on SMTP and the RFC, if I read it correctly specifies it like this).
So, another solution would be to use LDA for your local users and LMTP for the rest. The configuration for exim would be: a router and a transport for your local users using LDA, and your virtual users setup as you have it using LMTP.
local_user: debug_print = "R: local_user for $local_part@$domain" driver = accept domains = @ : localhost : ${primary_hostname} check_local_user transport = dovecot_lda cannot_route_message = Unknown user
dovecot_lda: driver = pipe command = /usr/lib/dovecot/dovecot-lda
-f $sender_address
-a $original_local_part@$original_domain log_output delivery_date_add return_path_add envelope_to_add user = $local_part group = mail temp_errors = 64 : 69 : 70 : 71 : 72 : 73 : 74 : 75 : 78Please check man dovecot-lda and the dovecot wiki (http://wiki2.dovecot.org/LDA/Exim) for details. Also check the permissions you need for dovecot-lda to write to your mailspool (user and group options from the transport).
I haven't tried the above, but I think it works like this ...
Best regards, Adrian.
Am 30.12.13 09:40 schrieb Philipp Kolmann:
Hi Adrian,
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. I had tried this once already. I have used your snipplet and attached
Am 26.12.2013 12:20, schrieb Adrian Zaugg: the debug output from exim. Sadly it didn't work, because the mtp process got the foll email again and not just the username.
thanks Philipp