[exim] Using Full Email Address for Cyrus LMTP Deliver

Top Page
Delete this message
Reply to this message
Author: Andre Nicholson
Date:  
To: exim-users
Subject: [exim] Using Full Email Address for Cyrus LMTP Deliver
I have a dilemma that I don't know how to solve involving Cyrus IMAP and
delivering to LMTP. I've tried Googling and searching the archives but
nothing.

I have unixhierarchysep set to 'yes' for Cyrus, which means that
accounts are 'username@???'.

I'd like to transition Exim to deliver to LMTP as opposed to calling
Cyrus's deliver command manually like I'm doing now. The problem that
I'm having is that the '@' character (at sign) must be escaped in order
for LMTP to accept it.

$ telnet localhost lmtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 neo-anime.org LMTP Cyrus v2.2.12 ready
LHLO marge.neo-anime.com
250-neo-anime.org
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-SIZE
250-AUTH EXTERNAL
250 IGNOREQUOTA
MAIL FROM:<andre@???>
250 2.1.0 ok
RCPT TO:<webmaster@???>
550-Mailbox unknown. Either there is no mailbox associated with this
550-name or you do not have authorization to see it.
550 5.1.1 User unknown
RCPT TO:<webmaster\@neo-anime.org>
250 2.1.5 ok

Here are the relevant routers and transport I'm trying:

begin routers

     escape_at_sign:
         driver          = redirect
         redirect_router = cyrus_router
         domains         = +local_domains
         data            = $local_part\\@$domain


     cyrus_router:
         driver    = accept
         domains   = +local_domains
         transport = cyrus_delivery


begin transports

     cyrus_lmtp_delivery:
         driver                = smtp
         rcpt_include_affixes  = true
         gethostbyname         = true
         transport_filter      = /usr/bin/tr -d \\000
         protocol              = lmtp
         hosts                 = localhost
         allow_localhost


What happens however is that Exim alters the sender address to append
$primary_hostname. In my above LMTP session, the sender address at the
cyrus_transport router ends up being
<webmaster\@neo-anime.org@???> and fails.

I hope I'm not being too confusing and I've made some kind of sense in
this. Has anyone encountered this sort of setup before and have a
solution? Is there a way to escape the '@' character for LMTP delivery?

Thanks for any help.

Andre Nicholson