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 : 78


Please 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,

Am 26.12.2013 12:20, schrieb Adrian Zaugg:
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
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





--
-----------------------------------------------------------------------
DI Mag. Philipp Kolmann                  mail: kolm...@zid.tuwien.ac.at
Technische Universitaet Wien                  web: www.zid.tuwien.ac.at
Zentraler Informatikdienst (ZID)                 tel: +43(1)58801-42011
Wiedner Hauptstr. 8-10, A-1040 Wien                        DVR: 0005886
-----------------------------------------------------------------------

Reply via email to